我想使用 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})))))$
最佳答案
您可以组合B
和C
带有 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
之后是 B
或C
或BC
解释:
您的正则表达式将是 AB
或AC
或ABC
所以在A
之后你想要B
或C
或BC
您可以创建 B
或C
带推杆+
和-
在字符类中:
([-+]([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/