2012-12-06 58 views
3

我看到過類似的問題,但我無法讓他們爲我的場景工作。正則表達式搜索2個字符串之間的可選通配符

我想用正則表達式來查找2個字符串之間的可選通配符。 下面是正則表達式不正確查找字符串的一個例子:not happy

如果字符串是: not very happy

代碼仍必須符合這兩種情況。

我的代碼是:

/\b(?<=not(*?).)happy\b/

happyvery是變量)

任何指着我在正確的方向幫助將是非常讚賞。

+0

爲什麼不只是做/(not.*happy)/i? – RonaldBarzell

+0

對不起,我沒有解釋這一點。我將使用{0,2}將單詞間的可選項限制爲僅2個。太多的額外單詞會再次改變上下文。因此,「完全不開心」是可以接受的,「不喜歡它不讓我開心」是不可接受的。 – user1882752

+0

你是想純粹用正則表達式來完成這個工作嗎,還是你介意PHP是否有一些東西? – RonaldBarzell

回答

1

一些調整可能是必需的,但是這會匹配到兩個詞之間「沒有」和「幸福」:

/not(?:\s+\w+){0,2}\s+happy/ 
+0

謝謝,這似乎是我或多或少需要的東西。感謝幫助。 – user1882752

0

這...

/not +([^ ]* +)?happy/ 

並隨時替換{0,2}(例如)匹配而不是開心之間的2個字。

相關問題