JAVA:正则表达式

JAVA:正则表达式,java,regex,Java,Regex,无法找到检测目标文本中是否存在特定正则表达式匹配项的my函数在本例中不起作用的原因: 正则表达式: "(?s).*<name>.+</name>.*​" 功能 private boolean isStringContainsReg(String reg, String text){ try { Pattern pattern = Pattern.compile(reg); Match

无法找到检测目标文本中是否存在特定正则表达式匹配项的my函数在本例中不起作用的原因:

正则表达式:

"(?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;
    }