0

C#で正規表現を使用して、このテキストの括弧の間の数字を取得するにはどうすればよいですか? サンプルテキスト :

「[1]アリ アフマディ、[2]モハマド ラザヴィ」の結果は : 1,2

私のC#コードは次のとおりです。

string result = null;
string[] digits = Regex.Split(Text, @"[\d]");
foreach (string value in digits)
{
    result += value + ",";
}
return result.Substring(0,result.Length - 1);
4

2 に答える 2

3
string s = "[1]Ali ahmadi,[2]Mohammad Razavi";
Regex regex = new Regex(@"\[(\d+)\]", RegexOptions.Compiled);
foreach (Match match in regex.Matches(s))
{
  Console.WriteLine(match.Groups[1].Value);
}

これにより、括弧内の数値が取得され、最初に一致したグループ ( )(\d+)に格納されます。Groups[1]

デモ

于 2012-09-15T12:33:26.263 に答える
0

Joãoの回答にLinqベースのアプローチを使用する:

string s = "[1]Ali ahmadi,[2]Mohammad Razavi";
var digits = Regex.Matches(s, @"\[(\d+)\]")
                  .Cast<Match>()
                  .Select(m => m.Groups[1].Value)
                  .ToList();
foreach (var match in digits)
{
   Console.WriteLine(match);
}

デモ

于 2012-09-15T13:44:17.367 に答える