我正在尝试从此字符串中提取文本 BetClic
popup_siteinfo(this, '/click/betclic', '373', 'BetClic', '60€');
我编写了一个简单的正则表达式,适用于 Regex Tester但这在 Java 上不起作用。
这是正则表达式
'\d+', '(.*?)'
这是 Java 输出
Exception in thread "main" java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Matcher.java:485)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:74)
Java Result: 1
这是我的代码
Pattern pattern = Pattern.compile("'\\d+', '(.*?)'");
Matcher matcher = pattern.matcher(onMouseOver);
System.out.print(matcher.group(1));
其中 onMouseOver
字符串为 popup_siteinfo(this, '/click/betclic', '373', 'BetClic', '60€');
我不是正则表达式方面的专家,但我很确定我的完全没有错误!
建议?
最佳答案
您需要在group(...)
之前调用find()
:
Pattern pattern = Pattern.compile("'\\d+', '(.*?)'");
Matcher matcher = pattern.matcher(onMouseOver);
if(matcher.find()) {
System.out.print(matcher.group(1));
}
else {
System.out.print("no match");
}
关于java - 正则表达式在在线测试器中匹配,但在 JAVA 中不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14944243/