考虑这些条目...
red yellow green
yellow green red
green red yellow
other red yellow
other green red
我可以按任意顺序(前3行)匹配红色,黄色,绿色:
^(^red|^yellow|^green) (red|yellow|green) (red$|yellow$|green$)$
请注意,我需要找到这些词,没有别的。 但是当我有更多的话时,表达式会增长很多。
e.g。 (有4个字)
^(^red|^yellow|^green|^black) (red|yellow|green|black) (red|yellow|green|black) (red$|yellow$|green$|black$)$
我的问题是:还有其他更简单的方法可以使用正则表达式吗?
答案 0 :(得分:3)
如果你可以容忍red red yellow
(好吧,我认为你的正则表达式可以匹配这样的行)那么你需要的正则表达式是
^(red|yellow|green)( (red|yellow|green))*$
您可以在那里测试:https://regex101.com/r/fC3pM3/1(它也有很好的解释)