假设我有一个字符串形式的XML.我希望删除XML String中两个标记之间的内容.我试过了:
String newString = oldString.replaceFirst("\\<tagName>.*?\\<//tagName>",
"Content Removed");
Run Code Online (Sandbox Code Playgroud)
但它不起作用.关于我做错了什么的指示?
好的,除了明显的答案(不要用正则表达式解析XML),也许我们可以解决这个问题:
String newString = oldString.replaceFirst("(?s)<tagName[^>]*>.*?</tagName>",
"Content Removed");
Run Code Online (Sandbox Code Playgroud)
说明:
(?s) # turn single-line mode on (otherwise '.' won't match '\n')
<tagName # remove unnecessary (and perhaps erroneous) escapes
[^>]* # allow optional attributes
>.*?</tagName>
Run Code Online (Sandbox Code Playgroud)
您确定正确匹配标签案例吗?也许您还想将i标志添加到模式中:(?si)