this是我的正则表达式,我试图用这个正则表达式找到所有出现在双引号内的字符串“variant”,但如果有两个出现在双引号内,它将只取最后一个。我的正则表达式基本上试图找到写在双引号内的字符串“variant”,我试着这样写,但它也不工作:这是我的代码:
String str_regex = "\\".*(variant).*\\"";
Matcher str_matcher = Pattern.compile(str_regex).matcher(joined);
while(str_matcher.find()) {
System.out.println(str_matcher.group());
}
1条答案
按热度按时间vfh0ocws1#
您可以匹配双引号内字符串的所有匹配项,然后计算匹配项内的
variant
匹配项:参见online demo。因此,
variant "if and only if 5 divides by i without remainder, then it prints \"i + \" variant: \" + variant\"" variant
字符串包含两个variant
。正则表达式是
(?<!\\)(?:\\{2})*"[^"\\]*(?:\\.[^"\\]*)*"
,请参阅its demo。(?<!\\)
-左侧不允许立即出现\
(?:\\{2})*
-零个或多个双反斜杠"
字符[^"\\]*
-除"
和\
之外的零个或多个字符(?:\\.[^"\\]*)*
-零个或多个转义字符序列,然后是零个或多个除\
和"
之外的字符"
-一个"
字符