gpt4 book ai didi

Java 正则表达式从 HTML 中删除 URL

转载 作者:行者123 更新时间:2023-12-02 01:39:48 25 4
gpt4 key购买 nike

我正在使用一个正则表达式字符串,它从 HTML 属性获取 URL。除了我需要处理不带引号的 CSS 样式 URL 之外,这工作得很好。我的正则表达式是

(.*?')(?<url>.*?)('.*)

作品:

width: 145px; background: url('http://www.google.com') no-repeat scroll center bottom transparent; text-align: center;

不起作用:

width: 145px; background: url(http://www.google.com) no-repeat scroll center bottom transparent; text-align: center;

作品:

parent.openLink('http://www.google.com','url',this);

我已经编写了一个可以在 Online Java Compiler 上运行的脚本。查看结果:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CompilerClass {
public static void main(String args[]) {
String[] inputs = {
"width: 145px; background: url('http://www.google.com') no-repeat scroll center bottom transparent; text-align: center;",
"width: 145px; background: url(http://www.google.com) no-repeat scroll center bottom transparent; text-align: center;",
"parent.openLink('http://www.google.com','url',this);"
};
for (int i = 0; i < inputs.length; i++) {
checkInput(inputs[i], i+1);
}
}

public static void checkInput(String input, int index) {
String groupName = "url";
Pattern pattern = Pattern.compile("(.*?')(?<url>.*?)('.*)");
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("Input " + index + ": " + matcher.group(groupName));
} else {
System.out.println("Input " + index + ": No Match");
}
}
}

我知道这是前后的单引号,但我不确定如何更改它,以便上述所有选项都有效。任何帮助,将不胜感激。谢谢。

最佳答案

我最终找到了适用于这些情况的解决方案。新的正则表达式是:

(.*?)\\('?(?<url>(.*?))(\\)|')(.*)

关于Java 正则表达式从 HTML 中删除 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57495169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com