DOM4J阅读正则表达式BUG

时间:2015-10-20 02:37:45

标签: java regex xml dom4j

我目前正在使用dom4j从xml读取正则表达式模式但匹配函数总是返回false,即使通过字符串返回也与我在xml中输入的完全相同。

示例XML:

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

示例代码(不工作):

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");
        }

    }
}

如果用Pattern.matches中的username_pattern_work替换变量username_pattern_notwork(username_pattern_notwork,&#34; ooo&#34;),它将正常工作

1 个答案:

答案 0 :(得分:0)

阅读完源代码后, 由dom4j从xml读取的字符串已经被转义。

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

{{1}}