java - 正则表达式 - 自定义命令+紧随其后的大写字母

标签 java regex string

我正在处理一个 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/

相关文章:

java - libGdx 多边形碰撞检测

regex - 如何在正则表达式中添加用户定义的字符串

将字符串中的一个字符更改为字符串

java - 从文件中拆分字符串

java - 在 30GB XML 数据集上搜索正则表达式模式。使用16GB内存

java - Java/Groovy 中的重试响应式事件处理

Java 字符串标记

python - Python print 使用哪个函数?

java - 在JAVA中使用此方法在ENUM类函数中更改ENUM的值

regex - 如何仅当一组字符串中的一个匹配时才返回 true?