【发布时间】:2015-05-18 15:06:05
【问题描述】:
我对 reg-ex 完全陌生,我想验证 string 的有效逻辑运算符组合,例如 ( ! 、 & 、 ( , ) , | ) 。例如,如果 & | 组合在一起,则它应该是无效的,因为 AND OR 应该组合在一起。同样可能的无效组合是 &|、|&、()、!&、&! 等
类似下面字符串的例子
1. (ABC)&(DFG)|!(ZXC) - pass because all operators are correctly combined
2. !(ABC|DKJ)&VBN - pass
3. !(ADF&(!&(BER|CTY))|DGH) = failed as !& combined
4. !(ABC&DKJ)&|VBN - failed as & | combined
我知道他们的几种方法,例如我可以使用 String's contains 方法来获取检查并在未通过验证时拒绝。但我正在通过reg-ex java 寻找解决方案
【问题讨论】:
-
您可能想查看 Java 的
Pattern和Matcher类。Pattern的 API 尤其包含非常有用的信息:docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html -
使用解析器生成器,如antlr.org
-
这可能会有所帮助:stackoverflow.com/questions/172303/…
-
你必须在这里使用正则表达式吗?看起来antlr.org 可能是更好的工具。
-
不要使用正则表达式来完成艰巨的任务。我认为
|&也是一个无效的组合。
标签: java regex string validation