正则表达式匹配任一单词或两者以逗号分隔

时间:2016-12-23 19:58:40

标签: regex

我的输入可以是publicinternal,也可以是任何顺序的逗号分隔publicinternal。以下是所有可能的情况:

  

公共

     

内部

     

公共,内部

     

内部,公共

要检查它是public还是internal我正在使用以下正则表达式:

(?:public|internal)

要检查它们是否以逗号分隔并按任何顺序排列,我使用以下正则表达式:

(?=.*public)(?=.*internal)

我很难将这两个正则表达式合并在一起。

提前致谢

2 个答案:

答案 0 :(得分:2)

由于只有四个选项,因此很容易匹配所有四种可能性:

public|internal|public,internal|internal,public

您可以使用可选匹配来"折叠"四种可能的匹配分为两个表达式:

public(?:,internal)?|internal(?:,public)?

答案 1 :(得分:2)

使用以下正则表达式模式:

(^public$|^internal$)|(^public,internal$|internal,public$)

https://regex101.com/r/TSvqCX/1