【发布时间】:2018-05-29 16:47:00
【问题描述】:
你好
我正在尝试创建一个验证规则来检查正则表达式以仅接受特定的短语。正则表达式基于 Java。
以下是正确输入的示例:
1OR22
1 OR 2 OR 15
( 2OR3) AND 1(12AND13 AND1)OR(4 AND5)((2AND3 AND 1)OR(4AND5))AND6())34AND(4
我不知道如何创建一个正则表达式来检查括号是否正确打开和关闭(它们可以嵌套)。我认为不可能在正则表达式中检查它,因此对我已经在代码中制作的括号进行正确验证(堆栈实现)。在代码中,我对短语进行了第二步验证。
我需要正则表达式做的就是检查短语中是否有这些特定的东西:
允许出现多次的数字、圆括号、单词 AND 和 OR 以及空格。 它不应该接受字母或其他字符。 到目前为止,我设法创建的是:
^[0-9 \\(][0-9 \\(\\)]*
还尝试添加类似:
\\b(AND|OR)\\b
在第二对括号内,但没有运气。
我不知道如何更正它以添加 OR 和 AND 词。
【问题讨论】:
-
如果括号可以嵌套,那么正则表达式绝对是不适合这项工作的工具。正则表达式无法处理递归。听起来你想写一个解析器。
标签: java regex validation salesforce apex