从特定的文本格式中提取数字和文本

时间:2019-02-14 09:57:06

标签: c# regex

我有一个与此类似的文字:

  

你好@ [[123456:Foo]

如何获取“ 123456”和“ Foo”?

我的尝试

@\[([\d+]):([\s+])\]

1 个答案:

答案 0 :(得分:2)

您可以使用

@\[(\d+):([^][]*)]

请参见regex demo。您需要的值在组1和2中。

详细信息

  • @\[-一个@[子字符串
  • (\d+)-捕获第1组:一个或多个数字
  • :-冒号
  • ([^][]*)-捕获组1:除][以外的零个或多个字符
  • ]-一个]字符。

C#演示:

var m = Regex.Match(str, @"@\[(\d+):([^][]*)]");
if (m.Success) 
{
    Console.WriteLine(m.Groups[1].Value);
    Console.WriteLine(m.Groups[2].Value);
}