匹配不同捕获组中的数字字符串

时间:2014-05-27 11:59:44

标签: c# regex

我有正则表达式"((?:\d*\.)?\d+)",我想在不同的捕获组中获取所有数字。

这样的事情:

String sInput  = "20004 8 19 0 1 25. 1. 0. 0. 8 8 6366. 305.4 305.4 15915 8 4 25. 0."
String sRegExDef="((?:\d*\.)?\d+)";

MatchCollection matches = Regex.Matches(sInput, sRegExDef, RegexOptions.IgnoreCase);

matches[0].Value="20004";
matches[1].Value="8";
matches[2].Value="19";
.
.
.
matches[n].Value="...";

我正在寻找的是一种在不同捕获组中获取数字的方法。

2 个答案:

答案 0 :(得分:1)

你可以这样做:

string[] matches = Regex.Split(sInput, @"[^\d.]+");

.NET Fiddle

答案 1 :(得分:0)

如果你想要每个数字(点后面的数字作为新数字)

 String sRegExDef=@"((?:\d*)?\d+)";