2015-04-30 61 views
-3

在一個字符串上使用正則表達式我有問題,沒有多少不在字符串中重複出現的字符串左側沒有任何內容。c#正則表達式最接近字符

">something">tofind</a> 

這一部分:

</a> 

是字符串中唯一但

"> 

部分,左邊是不是

我怎樣才能讓一個表達式拿第一「>(要匹配的)值的左側,而不是字符串開頭的第一個字符串

\">(.*)</a> 

由於這個原因不能正常工作,並給我提供了正確的方式。

任何解決方案?我想我的問題的解決方案是在表達式內而不是附加代碼。由於我的可編程硬編碼解決了我可能遇到的每個特殊問題。

非常感謝!

碼處理字符串

    var regex = new Regex(regexstring); 

        var matches = regex.Matches(line); 

        foreach (var singleuser in matches.Cast<Match>().ToList()) 
        { 
         allusernames.Add(singleuser.Groups[1].Value); 
        } 
+0

作爲邊注,[CsQuery](https://github.com/jamietre/CsQuery)是一種在C#中處理HTML的好方法! –

+0

我喜歡它原始:) –

+1

可能重複的[RegEx匹配開放標記,除了XHTML自包含標記](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-包含標籤) – AeroX

回答

1

您可以使用以下..

\">([^>]*)</a> 

說明:

  • \">匹配字面\">
  • ([^>]*)所有比賽字符以外>[^>]被否定集)
  • </a>匹配字面</a>

DEMO參見

+0

我會試試看,並回來與信息 –

+0

@tim_po我誤解了你的問題..請嘗試更新正則表達式.. –

+0

我的英雄!你能簡單解釋一下你做了什麼嗎? –