Java DOM4J读取正则表达式错误

Java DOM4J读取正则表达式错误,java,regex,xml,dom4j,Java,Regex,Xml,Dom4j,我目前正在使用dom4j从xml中读取regex模式,但是matches函数始终返回false,即使字符串返回与我在xml中键入的完全相同 示例XML: <?xml version="1.0" encoding="UTF-8"?> <root> <username-pattern><![CDATA[^\\w+$]]></username-pattern> </root> 如果将变量username\u patter

我目前正在使用dom4j从xml中读取regex模式,但是matches函数始终返回false,即使字符串返回与我在xml中键入的完全相同

示例XML:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <username-pattern><![CDATA[^\\w+$]]></username-pattern>
</root>

如果将变量username\u pattern\u notwork替换为username\u pattern\u work in pattern.matches username\u pattern\u notwork,ooo,则在阅读源代码后,它将正常工作, dom4j从xml读取的字符串已被转义

这意味着我不需要手动转义xml文件中的字符串。 i、 e


差不多对,不完全对。从外部源读取的字符串不需要转义:只需要转义Java字符串文本。
public class Test 
{
    public static void main( String[] args ) throws DocumentException
    {
        File inputFile = new File("C://test/test.xml");
        SAXReader saxBuilder = new SAXReader();
        Document document = saxBuilder.read(inputFile);
        Element rootElement = document.getRootElement();  

        String username_pattern_notwork = rootElement.elementTextTrim("username-pattern");
        String username_pattern_work = "^\\w+$";
        if(!(Pattern.matches(username_pattern_notwork, "ooo"))){
            System.out.println("===============Err=========");
        }else{
            System.out.println("OK");
        }

    }
}
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <username-pattern><![CDATA[^\w+$]]></username-pattern>
</root>