2017-05-08 263 views
0

我如何寫一個正則表達式匹配某物像那:正則表達式,省略幾個字

他是

能夠不能的

一般模式「他是」+多達幾個字+ 「的」

我知道如何解決它沒有正則表達式,但也許有更簡單的方法

+1

你已經嘗試了什麼? –

+0

沒有正則表達式,你的解決方案是什麼?你到底用了什麼正則表達式? – f1sh

+0

我的解決方案是找到模式「他是」和「的」索引,並檢查之間有多少個字符,但它需要循環 – Yeynno

回答

0

我這個去:

\bhe is\b.*\bof\b 

我使用\b了很多,以確保我匹配的詞。例如。這將不匹配She is capable of,既不he isa wizard capable of

這是一個有點複雜:

\bhe is\b(+\w+ *)*\bof\b 

在這裏,我們中間有(+\w+ *)*。這可以確保它相互匹配。

你可以玩演示here

1

如果你真的想檢查是否存在能夠或不capatable。

"he is\\s+(not\\s+)?(capable\\s+)?of" 
2

甲平凡解是使用

\bhe is(?: \w+){1,3} of\b 

其允許he isof之間的一個和三個 「字」 之間。

\w+表示「字母/數字/下劃線的序列」,因此它不完全匹配一個單詞,但是如果那個單詞太不確定,您可以替換您自己的單詞匹配正則表達式。

\bword boundary anchors用於僅匹配heof和不theoften