簡體   English   中英

正則表達式 - 模式捕獲除模式[.net]之外的所有內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM