正则表达式严格匹配包含字符串的字符串与分隔符?

时间:2015-10-17 22:49:32

标签: regex

我有多个元素弹出电子邮件 webhook 。 它们可以形成如下字符串:

popup|email|webhook
email|webhook
webhook
email
email|webhook
popup|webhook
popup|email
popup

我实际上有一个正则表达式^(?:popup){0,1}?\|?(?:email){0,1}?\|?(?:webhook){0,1}?$,但它会匹配popup|email|webhook以及popupemail|webhook

有没有办法确保元素与我的分离器|分开?

我也有(?>(?>(?>popup\|?){0,1}?email\|?){0,1}?webhook){0,1}?但这不是一个明显的解决方案,因为它只能在一个方向上工作,我几乎可以肯定这很容易解决,但我不知道如何看待正则表达式世界。

1 个答案:

答案 0 :(得分:1)

您只需要添加单词边界,以确保两个单词永远不会在一起。

^(?:popup)?\b\|?\b(?:email)?\b\|?\b(?:webhook)?$

Demo