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