我目前正在使用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;),它将正常工作
答案 0 :(得分:0)
阅读完源代码后, 由dom4j从xml读取的字符串已经被转义。
这意味着我不需要手动转义xml文件中的字符串。 即。
{{1}}