2011-03-08 82 views
3

我需要一個正則表達式,它最多可匹配某個單詞之前和之後的5個單詞。例如:匹配某個單詞之前和之後的最多5個單詞

的某些詞是「」

字符串爲「約翰·伊利獲得開始爲躲閃,而老朋友齋藤隆獲取會有什麼本質上是密爾沃基牛棚遊戲開始了釀酒。 「

應該有2分的結果:

約翰·伊利獲得啓動道奇隊,而老朋友隆

齋藤隆得到什麼將主要

任何啓動釀酒想法?

感謝

+0

你是什麼意思的「單詞」?這是一個非常模糊的術語,因爲它在不同的語言中意味着不同的事物,而在正則表達式中則意味着其他事物。 – 2011-03-08 20:36:29

回答

5
(?:[a-zA-Z'-]+[^a-zA-Z'-]+){0,5}the(?:[^a-zA-Z'-]+[a-zA-Z'-]+){0,5} 

不過請注意,大多數正則表達式引擎不會處理重疊的匹配。

+0

所以,爲了確保單詞the是一個真正的單詞,而不是單詞「論文」或「父親」的一部分,如何修改正則表達式?基本上我們只需要確保它周圍沒有其他字母,標點符號或空格即可。謝謝! – user417669 2013-11-10 09:17:10

+1

@ user417669在搜索詞的任一側添加單詞邊界\ b,僅強制全文匹配。 '(:[A-ZA-Z ' - ] + [^ A-ZA-Z' - ] +?){0,5} \的意見書\ B(:[^ A-ZA-Z' - ] + [一個-ZA-Z' - ] +){0,5}' – jmorganmartin 2014-07-27 16:27:41

相關問題