我想排除多行文本字段中的特定模式。我有一個正則表達式捕獲該模式,所以現在我想創建一個匹配除此模式之外的所有內容的表達式。什麼是對此的一般方法?出於某種原因,像這樣的負面看法:^(.(?!expression))*$
不適合我。正則表達式:排除
Q
正則表達式:排除
2
A
回答
3
說明
^(?!.*?\btest\b)
這將搜索尋找test
的字符串,如果存在的字符串,然後會導致測試失敗。 See also sample
摘要
^
匹配字符串(?!
向前看的開始,看看有沒有:.*?
除了\ n(0次或更多次 任何字符(匹配儘可能少的數量))\b
char(\ w) 和東西是不是一個字字符test
比賽test
\b
一個字字符(\ w)的 和東西之間的界限不是一個字字符)
先行結束
+0
現在好多了! – Jerry
+0
奇怪...好吧,我更新了這個,所以它會在rubular上工作,並且包含一個示例鏈接 –
2
你只是在錯誤的地方點。您需要之前做先行你消耗下一個字符,而不是之後:
^(?:(?!expression).)*$
而且,如果可以有行分隔符字符串中,你需要指定多/ DOTALL模式。你如何做到這一點取決於你使用的正則表達式。一些示例:
(?s)^(?:(?!expression).)*$
/^(?:(?!expression).)*$/s
^(?:(?!expression)[\s\S])*$
或者您可以使用Denomales' solution,這有點容易理解。
0
我發現這個表達式爲我工作:
^.*(?=expression)
其中expression
表示正則表達式匹配我想排除的格局。 我推薦這個工具進行測試 - http://gskinner.com/RegExr/
相關問題
- 1. 正則表達式排除&#
- 2. 正則表達式排除
- 3. 正則表達式 - 排除
- 4. 正則表達式排除
- 5. 正則表達式排除表達
- 6. 正則表達式,排除了字
- 7. XCOPY正則表達式排除名稱
- 8. 正則表達式排除的話
- 9. 正則表達式排除重複值
- 10. 正則表達式排除字符
- 11. 正則表達式排除捕獲
- 12. 排除與正則表達式
- 13. 正則表達式排除字
- 14. 正則表達式排除結束
- 15. 前綴排除的正則表達式
- 16. 正則表達式來排除字符
- 17. 正則表達式來排除URL的
- 18. 正則表達式 - 排除不需要
- 19. 找到與正則表達式排除
- 20. 正則表達式排除字符串
- 21. 正則表達式排除類別
- 22. 正則表達式排除μ從[\ W_]
- 23. 正則表達式來排除文件
- 24. 正則表達式排除字符串
- 25. JavaScript正則表達式排除括號
- 26. 正則表達式排除一個字
- 27. 排除正則表達式組值
- 28. 正則表達式來排除匹配
- 29. 正則表達式字符串排除
- 30. 正則表達式匹配但排除
你能提供一些示例輸入嗎? –
你知道它會匹配一切,但確切的模式?所以,如果你想在「森林中的樹」這個句子中匹配單詞樹,它將會有許多不同的選項可以匹配,但只有樹的精確匹配會失敗。所以它更加有效,取決於你的目標,匹配積極的並且在比賽時丟棄它。 – B8vrede
您可能在這裏使用了錯誤的方法。如果通過排除,你的意思是你想過濾出來,我建議使用你的模式與查找/替換功能,只需用空字符串替換。 – FatalError