JAVA:正则表达式
无法找到检测目标文本中是否存在特定正则表达式匹配项的my函数在本例中不起作用的原因: 正则表达式:JAVA:正则表达式,java,regex,Java,Regex,无法找到检测目标文本中是否存在特定正则表达式匹配项的my函数在本例中不起作用的原因: 正则表达式: "(?s).*<name>.+</name>.*" 功能 private boolean isStringContainsReg(String reg, String text){ try { Pattern pattern = Pattern.compile(reg); Match
"(?s).*<name>.+</name>.*"
功能
private boolean isStringContainsReg(String reg, String text){
try
{
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
return true;
}
}
catch(PatternSyntaxException e){
e.printStackTrace();
}
return false;
}
然而,当我在这个在线网站上测试它时,它是有效的:
将模式更改为
(?s)。*?。+*?代码>解决了问题-我刚刚将通配符替换为非贪婪的*?
。顺便说一句,有一种方法与函数IsStringContainesReg
的功能非常相似……如果要解析XML,请使用XML解析器,而不是正则表达式。在我的计算机上,它返回true(我只是将XML分配给string)@pezetem,在java代码中它返回false 1)在java正则表达式测试仪上3)在regexr上
private boolean isStringContainsReg(String reg, String text){
try
{
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
return true;
}
}
catch(PatternSyntaxException e){
e.printStackTrace();
}
return false;
}