0

如何在 C# 中使用正则表达式获取此文本括号之间的数字?示例文本 :

“[1]Ali ahmadi,[2]Mohammad Razavi”结果是: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 回答