2013-11-04 153 views
-2

我使用此示例:https://stackoverflow.com/a/406408/204819來構建一個正則表達式,該正則表達式可以匹配不包含表達式的字符序列。不幸的是,這並不工作:正則表達式不包含字符串

http://regex101.com/r/yR3bS4

請建議如何使這項工作表現。

+0

我想你忘了「我」('^((??heide)。)* foo $'似乎按預期工作)。 – femtoRgon

+4

這個問題似乎是脫離主題,因爲它是關於排字錯誤 – HamZa

回答

1

它確實有效。您的輸入字符串是heidefoo而不是hedefoo

+1

那是一個愚蠢的錯誤。 – romaninsh

0
hede != heide 

其他人也指出。稍微更新例如

^(?:(?!hede).)*foo$ 

現在它匹配「整個事情」正確(負回顧後組是「非捕獲」和你結束了整個表達式)。請參閱http://regex101.com/r/xV2sS7

0

有一個錯字。除此之外,通過這種方式檢查每個角色的
沒有條件時可能會有開銷懲罰。

更好的方法是嘗試使用字符串util的做到這一點。
或者,如果是嚴格的正則表達式解決方案,只需進行兩遍。

if (!match(/hede/) && match(/foo$/)) 
{ 
    // sucess 
} 

如果它是一個短的字符串,那麼你的正則表達式將不會是一個問題。

相關問題