*
と+
演算子が一致する繰り返しの数をカウントできる正規表現フレーバーはありますか?特に、.NETプラットフォームで可能かどうかを知りたいです。
1655 次
3 に答える
9
実際、.NET正規表現がこれを実行するので幸運です(これは非常にユニークだと思います)。本質的にすべてMatch
で、それぞれが作られたGroup
すべてを保存します。Captures
したがって、次の方法で、繰り返し可能なパターンが入力と一致した回数を数えることができます。
- キャプチャグループにする
- 各試合でそのグループによって行われたキャプチャの数を数える
- 必要に応じて、個別のキャプチャを繰り返すこともできます。
次に例を示します。
Regex r = new Regex(@"\b(hu?a)+\b");
var text = "hahahaha that's funny but not huahuahua more like huahahahuaha";
foreach (Match m in r.Matches(text)) {
Console.WriteLine(m + " " + m.Groups[1].Captures.Count);
}
これは(ideone.comで見られるように)印刷します:
hahahaha 4
huahuahua 3
huahahahuaha 5
APIリファレンス
于 2010-06-12T15:50:58.533 に答える
0
取ってみませんか"pref ([a-z]+) suff"
次に、グループを使用して括弧内の[az] +をキャプチャし、その長さを見つけますか?
この長さは、後続のマッチングにも使用できます。
于 2010-06-12T15:25:34.413 に答える