我該如何使用C#和正則表達式來查找某個模式在某個字符串中出現了多少次,或者是否在整個字符串中重複了一次模式。例如:在C#中使用正則表達式查找循環模式
模式:abc
找了多少次,這似乎在abcabcabcabcabc
我該如何使用C#和正則表達式來查找某個模式在某個字符串中出現了多少次,或者是否在整個字符串中重複了一次模式。例如:在C#中使用正則表達式查找循環模式
模式:abc
找了多少次,這似乎在abcabcabcabcabc
int count = Regex.Matches("abcabcabcabcabc", "abc").Count;
這將返回文本中的模式(參數2)中出現的次數來搜索(參數1) 。
您可以使用Regex
類的Matches
方法獲取給定輸入字符串中給定模式的所有匹配項。如果您匹配的模式是用戶輸入,那麼您可能還想使用Regex.Escape
來轉義其中的任何特殊字符。
var input = "abcabcabcabcabc";
var pattern = new Regex(@"abc");
var count = pattern.Matches(input).Count;
+1提到'Regex.Escape' – neontapir 2011-03-22 14:57:09
Regex.Matches("abcabcabcabcabc", @"abc").Count
我覺得正則表達式是有點矯枉過正。你是否已經知道「原始模式」,你打算髮現這一點? – 2011-03-22 14:43:43
我認爲這是一個簡單的例子。也許真實情況更復雜。另外,用正則表達式來做這件事很簡單,所以我不確定它是如何「過度殺傷」的。人們似乎普遍厭惡使用正則表達式! – 2011-03-22 14:46:24
@Josh M.「人們似乎普遍厭惡使用正則表達式!」有充分的理由。 – 2011-03-22 14:48:26