![](/img/trans.png)
[英]Using regex to capture everything except a certain (possibly repeated) pattern
[英]Regex - pattern capture everything except for pattern [.net]
我想捕捉任何東西,但不包括特定的模式。 我的實際問題與解析html中的信息有關,但我將問題提煉為一個例子,希望澄清我的問題。
資源
xaxbxcabcabc
期望的比賽
xaxbxc
如果我使用前瞻,表達式將捕獲第一次出現
.*(?=abc) => xaxbxcabc
我想要一個否定的角色類的東西,只是為了一個否定的模式。
.*[^abc] //where abc as a pattern instead of a list giving anything but a, b or c
我正在使用http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx進行測試
非貪婪(懶惰)量詞*?
在這里可能有用,例如
^(?<captured>.*?)abc.*$
編輯 :為了清楚,顯然捕獲(當然)不需要,真正重要的部分就是
(.*?)abc
如果你錨定正則表達式,你將解決問題(+使用延遲量詞):
"^.*?(?=abc)"
為什么不使用替換 :
string result = new Regex("abc.*$").Replace ( input, "" );
這將從第一個匹配的短語開始刪除所有內容,直到那時為您留下所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.