Java 用于在任意两个HTML标记之间进行匹配的正则表达式
我有以下内容:Java 用于在任意两个HTML标记之间进行匹配的正则表达式,java,regex,pcre,regex-greedy,replaceall,Java,Regex,Pcre,Regex Greedy,Replaceall,我有以下内容: hi 你好 我试图匹配TEST-TEXT字符串以替换它是值,但仅当它是文本而不在属性值内时 我已经检查了Regex中的look ahead和look behind的概念,但是当前的问题是它需要为匹配使用固定的宽度。这里有一个链接,它显示了一个非常类似的情况,但有一个例外,即创建匹配的类有一个跨度 还检查了链接 下面是我正在尝试使用的两个正则表达式: \“([^”]*)\” 类似这样的东西应该会有帮助: \>([^"<]*)\< \>([^“试试测试文本(?=
hi
你好
我试图匹配TEST-TEXT字符串以替换它是值,但仅当它是文本而不在属性值内时
我已经检查了Regex中的look ahead和look behind的概念,但是当前的问题是它需要为匹配使用固定的宽度。这里有一个链接,它显示了一个非常类似的情况,但有一个例外,即创建匹配的类有一个跨度
还检查了链接
下面是我正在尝试使用的两个正则表达式:
\>([^"<]*)\<
\>([^“试试测试文本(?=)
TEST-TEXT
与TEST-TEXT匹配
?=
向前看以检查结束标记
看
在这里,我们可能只需在所需输出的右侧添加一个软边界(您已经在这样做了),然后为所需输出添加一个字符列表,然后收集,然后我们可以使用捕获组进行替换。()
。可能类似于此:
([A-Z-]+)(<\/)
([A-Z-]+)(也许这会有帮助
String html = "<div class=\"TEST-TEXT\">hi</span>\n" +
"<a href=\\\"https://en.wikipedia.org/wiki/TEST-TEXT\\\">first young CEO's TEST-TEXT</a>\n" +
"<span class=\"test\">hello</span>";
Pattern pattern = Pattern.compile("(<)(.*)(>)(.*)(TEST-TEXT)(.*)</.*>");
Matcher matcher = pattern.matcher(html);
while (matcher.find()){
System.out.println(matcher.group(5));
}
String html=“嗨\n”+
“\n”+
“你好”;
Pattern=Pattern.compile((()(.*)(测试文本)(.*));
Matcher Matcher=pattern.Matcher(html);
while(matcher.find()){
系统输出println(匹配组(5));
}
用于在任意两个HTML标记之间创建字符串的正则表达式
(?![^]*>)(测试文本)
预期输出是什么?正则表达式的功能不足以解析HTML@TheScientificMethod以匹配第三个测试文本,而第三个测试文本是两个文本的内部文本tags@PushpeshKumarRajwanshiKumar Rajwanshi您还建议使用什么?请尝试:TEST-TEXT(?=)
这还包括opining和closing标记,我希望它只匹配内部字符串。如果要匹配标记之间的任何文本,我希望它匹配一个特定的stringTEST文本(?=),该文本将匹配所有标记,但我仍然希望文本是动态的要使其成为动态的,请使用TEST-text(?=)
任何东西都不匹配只有在sting后有结束标记时才有效。我要查找的是字符串在所有情况下的匹配,当它是文本而不是属性值时。只有当它是两个标记之间的唯一字符串时才会匹配。
String html = "<div class=\"TEST-TEXT\">hi</span>\n" +
"<a href=\\\"https://en.wikipedia.org/wiki/TEST-TEXT\\\">first young CEO's TEST-TEXT</a>\n" +
"<span class=\"test\">hello</span>";
Pattern pattern = Pattern.compile("(<)(.*)(>)(.*)(TEST-TEXT)(.*)</.*>");
Matcher matcher = pattern.matcher(html);
while (matcher.find()){
System.out.println(matcher.group(5));
}