2011-03-22 95 views
3

我該如何使用C#和正則表達式來查找某個模式在某個字符串中出現了多少次,或者是否在整個字符串中重複了一次模式。例如:在C#中使用正則表達式查找循環模式

模式:abc
找了多少次,這似乎在abcabcabcabcabc

+1

我覺得正則表達式是有點矯枉過正。你是否已經知道「原始模式」,你打算髮現這一點? – 2011-03-22 14:43:43

+1

我認爲這是一個簡單的例子。也許真實情況更復雜。另外,用正則表達式來做這件事很簡單,所以我不確定它是如何「過度殺傷」的。人們似乎普遍厭惡使用正則表達式! – 2011-03-22 14:46:24

+1

@Josh M.「人們似乎普遍厭惡使用正則表達式!」有充分的理由。 – 2011-03-22 14:48:26

回答

3
int count = Regex.Matches("abcabcabcabcabc", "abc").Count; 

這將返回文本中的模式(參數2)中出現的次數來搜索(參數1) 。

5

您可以使用Regex類的Matches方法獲取給定輸入字符串中給定模式的所有匹配項。如果您匹配的模式是用戶輸入,那麼您可能還想使用Regex.Escape來轉義其中的任何特殊字符。

var input = "abcabcabcabcabc"; 
var pattern = new Regex(@"abc"); 
var count = pattern.Matches(input).Count; 
+0

+1提到'Regex.Escape' – neontapir 2011-03-22 14:57:09

3
Regex.Matches("abcabcabcabcabc", @"abc").Count