2012-04-30 26 views
0

我試圖從句子中檢索具有正則表達式的特定字符串。 這是我最初的正則表達式:使用正則表達式從句子檢索特定的字符串

Regex Reg = new Regex(@"^[KB|kb](\w+)[-]?(\w+)$"); 

    From input of : 
    word word word (KB92922-WMP9) word. 
    word word word (KB929222910) word word. 
    word word kb28928282 word word. 

應該能夠檢索:

KB92922-WMP9 
    KB929222910 
    kb28928282 

把他們當作句子,我們通過一次傳遞一個句子一個檢索數據。檢索其數據沒有括號。

這是怎麼回事?我不知道。我認爲我已經得到了正則表達式的權利,但我不太確定如何檢索數據。

+0

請不要使用前綴「C# - 」你的標題和這樣。這就是標籤的用途。 –

+0

我在測試正則表達式時發現這非常有用:http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx –

回答

1

您正在查找Regex.Matches,(假設一個句子可能同時包含KB12345和KB98765)。它類似於Regex.Match,但會給你所有匹配的子字符串。

如果您將整個文本作爲一個字符串,則可能沒有必要將其拆分爲句子。只需獲取整個字符串中的所有匹配項就可以獲得與收集同一字符串內所有句子中的所有匹配項相同的結果。

編輯:更新的正則表達式使用的是

Regex Reg = new Regex(@"(KB\d+(?:-[\w\d]+)?)", RegexOptions.IgnoreCase); 
+0

謝謝!馬上工作 – user919789

相關問題