我正在处理一个 XML get 请求,该请求具有来自请求来源网站的自定义命令。
现在我尝试从请求中删除自定义命令。
我尝试清理的字符串之一的示例:
\u003cb\u003eText here\u003c/b\u003e \u003c/u\u003e\u003c/b\u003e \r\n\r\n
现在我想在清理后得到的输出是:
Text here
现在我拥有的当前正则表达式(来 self 的 previous question )是这样的:
String myRegex = "(\\\\.\\d{3,}.*?\\s|\\\\r|\\\\n)";
但问题是,它也会删除 Text
,因为它直接位于 \u003e
如何更改正则表达式,使其不会删除文本
?
- 我们可以假设命令以
\
开头 - 我们可以假设命令以小写字母结尾:\u003 e
- 我们可以假设,如果命令后面有一个大写字母,则它不是命令的一部分。
最佳答案
您的正则表达式字符串不起作用,因为它正在寻找空格 \\s
来完成该字符串,该空格位于 “Text” 单词之后。
我删除了它并设法设置一个间隔[a-z]
而不是任何字符。
,根据您的规范:命令中只允许小写字母。
这个正则表达式可以解决问题。我假设只有大写字母或空格会中断命令,因为无法知道小写字母是否是单词的一部分。
String myRegex = "(\\\\.\\d{3,}[a-z]*?|\\\\r|\\\\n)";
关于java - 正则表达式 - 自定义命令+紧随其后的大写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20856590/