2011-03-22 4 views
3

Comment utiliser les expressions régulières et C# pour trouver le nombre de fois qu'un motif se produit dans une chaîne ou si un motif est répété tout au long de la chaîne. Par exemple:Utilisation d'expressions régulières en C# pour rechercher un motif récurrent

Motif: abc
trouver combien de fois apparaît dans abcabcabcabcabc

+1

Je pense que regex est un peu exagéré. Et connaissez-vous déjà le «modèle d'origine», avez-vous l'intention de le découvrir? –

+1

Je pense que c'est un exemple simple. Peut-être que le cas réel est plus complexe. En outre, il est très simple de le faire avec des expressions régulières, donc je ne suis pas sûr de savoir comment c'est "exagéré". Les gens semblent avoir une aversion générale à l'utilisation d'expressions régulières! –

+1

@Josh M. "Les gens semblent avoir une aversion générale à l'utilisation d'expressions régulières!" Pour une bonne raison. –

Répondre

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

Ceci renvoie le nombre d'occurrences du motif (paramètre 2) dans le texte de recherche (paramètre 1) .

5

Vous pouvez utiliser la méthode Matches de la classe Regex pour obtenir toutes les correspondances dans une chaîne d'entrée donnée pour un modèle donné. Si le motif sur lequel vous faites correspondre est une entrée utilisateur, vous voudrez probablement utiliser Regex.Escape pour y échapper des caractères spéciaux.

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

+1 pour la mention 'Regex.Escape' – neontapir

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