我想使用以下正则表达式来查找具有a和b或a和c的任何单词以及这些字母中的任何一个(f或g)我使用此正则表达式并且工作得非常好但是: 还有另一种比我用过的模式更短的方法吗?
我用的正则表达式:
(f|g).*a.*(b|c)|a.*(f|g).*(b|c)|a.*(b|c).*(f|g)
我的测试文字:
-----------------------------------------------
txt | matches
-----------------------------------------------
test with g a b | YES
test with m n s | NO
test with a g b | YES
test with a b g | YES
test with e r q | NO
test with fg a fg b fg | YES
-----------------------------------------------
我想检查一个单词应该有a和b和f或g。但是f或g有任何单词和其中一个例如我这样检查:abg - abf - gab - fab - agb - afb - gab - fab并且不匹配这个:gcd - 它没有a和b。
答案 0 :(得分:0)
如果此类查询是主要查询,那么在对字母进行排序后,我会建议a.*[bc].*[fg]
。
可能您希望将字母排序为新列,以免破坏原始字符串。