2015-10-17 62 views
1

我有多個元素彈出,電子郵件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

您只需添加單詞邊界以確保兩個單詞永遠不會在一起。

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

Demo

+0

事實上,這是解決方案!非常感謝 ! – Kwaadpepper

+0

沒問題。很高興我能幫上忙。 – Anonymous