2014-11-22 64 views

回答

2

你的企圖沒有工作,因爲你糊塗否定字符類([^...]定義,但可以通過定義來只覆蓋單個字符)與負先行(與(?!...)定義)。

你有沒有正確地寫入這一點,它看起來會是這樣的:由於顯而易見的原因前面.

^(?!end).+end.*$ 

...與+代替*權之後。 )

注意,更直接的嘗試 - ^.+end.*$ - 雖然看起來相當正常的,實際上是在詞看起來像endendless(失敗,即當有目標字符串的end子,但它確實與end啓動過)。

另外,如果你正在尋找目標字符串,而不是僅僅驗證它,你應該調整相應的正則表達式,使用單詞邊界錨,而不是字符串錨那樣:

\b(?!end)\w+end\w* 

Demo

+0

您可能希望編輯此代碼以解釋前端的單詞邊界,或者額外發布該單詞邊界。這將匹配「這是我們所知道的世界的末日」,或「這是結束」。 – 2014-11-22 20:19:34

+0

感謝您的答案,但我正在使用python並遍歷單詞,所以每個字符串都是一個單詞。我用負面的樣子試了一下,但我忘了補充。+傻,我,謝謝。 – user3146659 2014-11-22 20:39:47

+1

@ user3146659:如果每個字符串都是一個單詞,則根本不需要正則表達式,您只需檢查從開始到第三個字符的子字符串是否不是「結束」。 – 2014-11-22 21:18:36

相關問題