java - 正则表达式中的逻辑或

标签 java regex

我想使用 java regex 测试以下情况:

  • AB -> 允许
  • AC -> 允许
  • ABC -> 允许
  • A -> 禁止

以下是 A、B 和 C 正则表达式:

  • 答:(([0-9]{1,3})(\.[0-9]{1,3})?)
  • B:(\+([0-1](\.[0-9]{1,3}))
  • C:(-([0-1](\.[0-9]{1,3}))

那么如何使用逻辑 OR 创建我的正则表达式?

解决方案

^(([0-9]{1,3})(\.[0-9]{1,3})?)([-+]([0-1](\.[0-9]{1,3}))|(\+([0-1](\.[0-9]{1,3}))(\-([0-1](\.[0-9]{1,3})))))$

最佳答案

您可以组合BC带有 put 的正则表达式 +-在字符类中并使用以下正则表达式:

^(([0-9]{1,3})(\.[0-9]{1,3})?)([-+]([0-1](\.[0-9]{1,3}))|(\+([0-1](\.[0-9]{1,3}‌​))(\-([0-1](\.[0-9]{1,3})))))$

在这种情况下,您总是会得到 A之后是 BCBC

解释:

您的正则表达式将是 ABACABC所以在A之后你想要BCBC您可以创建 BC带推杆+-在字符类中:

([-+]([0-1](\.[0-9]{1,3}))

然后使用 pip ( | ) 作为前面的选项和 BC 之间的逻辑或。如下:

(\+([0-1](\.[0-9]{1,3}))(\-([0-1](\.[0-9]{1,3}))

关于java - 正则表达式中的逻辑或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799931/

相关文章:

java - 在 Project Reactor 中处理来自 Mono 的可选值

java - 从 SQL 表自动创建 Java 类型

javascript正则表达式删除括号中的尾随数字

javascript - 匹配 URL 的正则表达式 - 字符串末尾的数字,但也匹配字符串开头的字符

java - 返回流而不是列表

java - 有人可以解释为什么/如何更改链接列表中的节点而不直接在 Java 中更改它们吗?

javascript - 替换字符串中的单词

c# - .NET 中是否有匹配或异常正则表达式

javascript - 当通配符匹配时, Node 快速 GET 路由会失败所有其他请求

java - batik 将 SVG 转换为 JPEG