gpt4 book ai didi

Java 正则表达式问题 - 无法匹配同一行中的两个字符串

转载 作者:行者123 更新时间:2023-11-29 05:12:12 25 4
gpt4 key购买 nike

<分区>

刚刚遇到 Java 正则表达式的一些问题。
我有一个程序可以读取 HTML 文件并替换 @VR@ 字符内的任何字符串,即 @VR@Test1 2 3 4@VR@

但是我的问题是,如果该行包含两个以上被@VR@ 包围的字符串,则它不会匹配它们。它会将句子中最左边的@VR@ 与最右边的@VR@ 匹配,从而获取中间的任何内容。

例如:

<a href="@VR@URL-GOES-HERE@VR@" target="_blank" style="color:#f4f3f1; text-decoration:none;" title="ContactUs">@VR@Google@VR@</a>    

我的代码会匹配

URL-GOES-HERE@VR@" target="_blank" style="color:#f4f3f1; text-decoration:none;" title="ContactUs">@VR@Google

这是我的 Java 代码。如果你能帮我解决这个问题,我将不胜感激:

Pattern p = Pattern.compile("@VR@.*@VR@");
Matcher m;
Scanner scanner = new Scanner(htmlContent);

while (scanner.hasNextLine()) {
String line = scanner.nextLine();
m = p.matcher(line);

StringBuffer sb = new StringBuffer();

while (m.find()) {
String match_found = m.group().replaceAll("@VR@", "");
System.out.println("group: " + match_found);
}
}

我尝试用 m.group(0) 和 m.group(1) 替换 m.group() 但没有。此外,m.groupCount() 始终返回零,即使在我上面的示例中有两个匹配项也是如此。

谢谢,非常感谢您的帮助。

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