Java DOM4J读取正则表达式错误
我目前正在使用dom4j从xml中读取regex模式,但是matches函数始终返回false,即使字符串返回与我在xml中键入的完全相同 示例XML: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
<?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>