我想要一個表達式,當它遇到諸如「boon.ini」和「http」等單詞時將失敗。目標是採取這種表達方式,並能夠爲任何一組關鍵字構建。正則表達式排除關鍵字集
回答
^(?:(?!boon\.ini|http).)*$\r?\n?
(從RegexBuddy的庫中提取的)匹配不包含boon.ini和/或HTTP的任何行。那是你想要的嗎?
與其否定表達式中的結果,您應該在代碼中執行該操作。這樣,表達就變得非常簡單。
\b(boon\.ini|http)\b
將返回true
如果boon.ini或HTTP是在字符串中的任何地方。由於\b
或字邊界,它不會匹配像httpd或httpxyzzy這樣的詞。如果你願意,你可以刪除它們,它也會匹配這些。要添加更多關鍵字,只需添加更多管道。
\b(boon\.ini|http|foo|bar)\b
你可能會寫好正則表達式,成功,當它遇到你正在尋找的單詞,然後反轉條件。
例如,在Perl中你會使用:
if (!/boon\.ini|http/) {
# the string passed!
}
哪種語言/正則表達式庫?我想你的問題是圍繞ASP.NET在這種情況下,你可以看到這篇文章的「負lookhead」部分: http://msdn.microsoft.com/en-us/library/ms972966.aspx
正則表達式的嚴格說來否定,還定義了一個普通的語言,但也有極少數庫/語言/工具,允許表達它。
負面看法可能會爲您提供相同的服務,但實際的語法取決於您使用的是什麼。 Tim的答案是與(?...)
一種替代表達式的示例,可用於:
^(?!.*IgnoreMe).*$
^
=指示行的開始
$
=表示線的末尾
(?! Expression)
=表示零寬度的外觀前面的表達否定匹配
前面的^
是需要的,否則當評估爲負面時ahe廣告可以從「IgnoreMe」文本內/之外的某個地方開始,並在不需要的地方進行比賽。
例如如果使用正則表達式:
(?!.*IgnoreMe).*$
隨着輸入「你好IgnoreMe請」,這將會導致類似:「gnoreMe請」爲負先行認定,沒有完整的字符串「IgnoreMe」後'我'。
^[^£]*$
上述表達式將僅限制字符串中的磅符號。這將允許除字符串以外的所有字符。
我用這個(基於添Pietzcker答案)排除非生產子域網址,谷歌Analytics(分析)輪廓濾波器:
^\w+-*\w*\.(?!(?:alpha(123)*\.|beta(123)*\.|preprod\.)domain\.com).*$
你可以看到這裏的情境:Regex to Exclude Multiple Words
- 1. R中的正則表達式 - 排除關鍵字
- 2. 正則表達式排除&#
- 3. 正則表達式排除
- 4. 正則表達式:排除
- 5. 正則表達式 - 排除
- 6. 正則表達式排除
- 7. 正則表達式,排除了字
- 8. 正則表達式排除字符
- 9. 正則表達式排除字
- 10. 正則表達式來排除字符
- 11. 正則表達式排除字符串
- 12. 正則表達式排除字符串
- 13. 正則表達式排除一個字
- 14. 正則表達式字符串排除
- 15. 正則表達式排除字
- 16. 正則表達式 - 排除字符
- 17. 關鍵字的正則表達式
- 18. Django的:關鍵字正則表達式
- 19. 正則表達式 - 關鍵字
- 20. 正則表達式關鍵字建議
- 21. 關鍵字正則表達式分割
- 22. 正則表達式 - 匹配關鍵字
- 23. 正則表達式關鍵字轉義
- 24. 正則表達式排除表達
- 25. 正則表達式匹配 - 排除多個字符集
- 26. 正則表達式從正則表達式中排除1個字
- 27. 正則表達式的JS,除了關鍵字
- 28. 正則表達式PHP刪除某些關鍵字
- 29. 關鍵值正則表達式模式
- 30. 正則表達式來排除所有字符,除了字母