-1

文字列内のすべての一致をキャプチャし、それらをいくつかのコレクションにプッシュし、一致を繰り返していくつかのことを行う必要がある正規表現がありました。

 Regex regx = new Regex(@"{{\w+}}");

            Match m = regx.Match(str);

            string sel = m.Value;
            string actualProp = sel.Substring(2, sel.Length - 4);

            str = Regex.Replace(str, actualProp, x);

私は Ex: string を持っていました: {{name}} は {{name.child}} です

だから私は2つのマッチすべてをコレクションに入れなければなりません.plzを回避する方法を理解できませんでした.....

4

2 に答える 2

0

次のようなことを試してください:

Match m = regx.Match(str);
    var results = new List<string>();
    while (m.Success)
    {
        results.Add(m.Value);
        m = m.NextMatch();
    }
于 2013-05-17T10:05:21.593 に答える
0

Matchesメソッドを使用しRegexて結果を反復処理できます。これを参照してください http://msdn.microsoft.com/en-us/library/e7sf90t3.aspx

[編集] 次に、一致内のグループにアクセスするには(インデックスまたは名前付きグループによって):

Regex regex = new Regex("pattern");
foreach(Match match in regex.Matches("input"))
{
    string val = match.Groups[1].Value;
    string val2 = match.Groups["group_name"].Value;
}
于 2013-05-17T10:00:31.860 に答える