正则表达式,捕获组

时间:2016-12-06 15:20:47

标签: c# regex

您好我需要一些关于正则表达式的帮助:

我需要什么:

  • 仅使用以d开头的行。
  • d 后的第一个小数应位于第一组。
  • 空格后的第二个小数应位于第二组中。
  • 前面有空格的所有后续小数应添加到第三组

这是一些示例内容:

string pattern = $@"d +(?<{Grp1}>\-?[0-9]*\.[0-9]*) (?<{Grp2}>\-?[0-9]*\.[0-9]*) (?<{Grp3}>\-?[0-9]*\.[0-9]*)(.*)";

var matches = Regex.Matches(content, regexPattern);
foreach (Match match in matches)
{
    var group1 = match.Groups[Grp1];
    var group2 = match.Groups[Grp2];
    var group3 = match.Groups[Grp3];
    foreach (var capture in group3.Captures)
    {

    }
}

我想使用它如下:

JSONArray

无法获得正确的正则表达式。

提前致谢。

2 个答案:

答案 0 :(得分:1)

^d (\d+\.\d+) (\d+\.\d+)(.*)$

这是我提出的表达方式,很可能会得到改善。

值得注意的是,当你使用它时,你需要在表达式中使用MultiLine修饰符,以便^匹配每个新行的开头。

答案 1 :(得分:0)

我会使用以下模式

^d ([\d.]+) ([\d.]+) ?([\d. ]+)?

在此测试:https://regex101.com/r/4nQGNc/1