我知道我可以做以下[^ h]讓所有的匹配接受'h'的匹配。 我該如何處理整個單詞,例如^(字)在正則表達式的詞停止
2
A
回答
9
如果你想匹配的字符串不等同於foo
:如果你想匹配的字符串不含foo
^(?!foo).*$
:
^(?!.*foo).*$
如果你想匹配一個不包含foo
的字符串作爲完整的字:
^(?!.*\bfoo\b).*$
如果你想直到foo
出現匹配的字符串,並foo
之前停止比賽:
^(?:(?!foo).)*
這些解決方案不處理換行符的字符串,所以你可能需要設置相應的正則表達式選項,如.NET中的RegexOptions.Singleline
(如果這是一個問題)。
(?!foo)
是zero-width negative lookahead expression,這意味着它聲稱是不可能的(「負」)來匹配foo
以下字符串中的當前位置(「看提前」),而不是消耗在比賽中的任何字符嘗試(「零寬度」)。
3
真的沒有什麼好的方法可以用正則表達式來做到這一點。你可以得到的最接近的是使用negative lookahead會發現正則表達式只有它不是隨後在負向前查找字符串...:
foo(?!word)
只能找到後面沒有word
foo
。
同樣存在看着身後(而不是向前):
(?<!word)foo
只能找到foo
如果它沒有通過word
之前。
相關問題
- 1. PHP - 正則表達式停止在「 」
- 2. 正則表達式停止崩潰
- 3. 正則表達式停止不工作
- 4. 停止正則表達式匹配單詞中某個單詞的部分
- 5. 分詞正則表達式
- 6. 正則表達式量詞
- 7. 否定詞組? - 正則表達式(正則表達式)
- 8. 正則表達式|如果存在,則停止
- 9. JavaScript的正則表達式 - 替換字符串停用詞
- 10. PHP的正則表達式匹配詞
- 11. 正則表達式中的單詞
- 12. 正則表達式的前綴詞
- 13. 正則表達式量詞的java
- 14. Windows受限詞的正則表達式
- 15. 正則表達式匹配後的詞
- 16. 連續詞的正則表達式
- 17. java的正則表達式量詞
- 18. 不含正則表達式的單詞
- 19. UTF-8單詞的正則表達式
- 20. 量詞*的正則表達式組合?
- 21. 查找單詞的正則表達式
- 22. 正則表達式(正則表達式)
- 23. 正則表達式(正則表達式)
- 24. 正則表達式(正則表達式)
- 25. 正則表達式不使用C#正則表達式匹配特定的詞
- 26. 正則表達式在第一次出現時不停止
- 27. 在分割多行正則表達式 - 它停止工作
- 28. Python正則表達式在第一個「|」後停止比賽
- 29. sed正則表達式在第一場比賽停止
- 30. 正則表達式在第一次匹配時停止
請正確解釋您的問題 – Rozuur 2011-01-12 10:05:04