2013-05-28 39 views
0

我想用只包含負面lookahead的正則表達式來檢查句子。所以如果寫在正則表達式中只使用負面lookahead

^(?!My Words)$ 

和測試字符串是some characters。我期望正則表達式應該返回true,但它不會。應該有性格消耗匹配字符來產生結果嗎?

回答

2

正則表達式您提供的手段:

  • 字符串
  • 的開始,以下字符不是「我的話」
  • 字符串

的到底有沒有檢查正則表達式字符串必須包含任何東西。更具體地說,它必須不包含任何內容。在這種情況下,預見並不會做任何事情。

想必你想要更多的東西是這樣的:

^(?!My Words).*$ 

.*僅僅是零個或多個野生卡,所以基本上什麼。在這種情況下,預見阻止從開始的字符串「我的單詞」。

如果你要防止「我的話」出現隨時隨地,這樣的事情應該工作:

^(?!.*My Words).*$ 
+0

明白了..謝謝..正則表達式只是embrassing ..所以容易又如此混亂:) –

+1

或簡單地'^(?!我的話)'如果你只是測試匹配 – Anirudha

+0

@Anirudh那麼,這取決於。如果你做了一個'string.matches'(以任何語言),那就行不通了。 – Dukeling