使用正则表达式提取括号内的值

时间:2018-09-28 10:31:47

标签: regex

下面的代码工作正常,并在方括号内给出值(但我希望它在不使用方括号的情况下返回值,输出给我该值但带有方括号)

  string regularExpressionPattern = @"\[(.*?)\]";

  string inputText = "Find string inside brackets [C#.net] and [Vb.net] example.";

  Regex re = new Regex(regularExpressionPattern);

  foreach (Match m in re.Matches(inputText))
  {
    Console.WriteLine(m.Value);
  }

  Console.ReadLine();

}

输出:

[C#.net]
[Vb.net]
[ASP.net]

预期输出:

C#.net
Vb.net
ASP.net

2 个答案:

答案 0 :(得分:1)

使用 m.Groups [1] .Valu e在foreach循环中获取所需的值:

void Main()
{ 

  string regularExpressionPattern = @"\[(.*?)\]";
  string inputText = "Find string inside brackets [C#.net] and [Vb.net] example.";

  Regex re = new Regex(regularExpressionPattern);

  foreach (Match m in re.Matches(inputText))
  {
    Console.WriteLine(m.Groups[1].Value);
  }
}

答案 1 :(得分:0)

而不是m.Value,请使用您未公开的语言使用的任何方法来获得第一组,例如在C#.NET中:

m.Groups[1]