正则表达式在C#中捕获两个组

时间:2014-08-21 14:48:46

标签: c# regex

我想从以下字符串中获得示例中的两个子串2和1(主队和客队结果):'最终结果2:1(1:1,1:0)&#39 ;。当然我可以使用split()或类似的但我决定使用正则表达式解决这个问题,目前没有运气。这是我尝试过的:

var text = "Final result 2:1 (1:1, 1:0)";
var pattern = @"\w+(\d+):(\d+)";
var myRegex = new Regex(pattern, RegexOptions.IgnoreCase);
var m = myRegex.Match(text);

不幸的是,m.Captures是空的。

我缺少什么?

提前致谢

2 个答案:

答案 0 :(得分:2)

您可以尝试下面的正则表达式,该正则表达式匹配此number:number格式的字符串(格式必须后跟空格),并且还会捕获:之前和之后的数字,

(\d+):(\d+)(?= )

DEMO

答案 1 :(得分:1)

你的正则表达式几乎可以工作,你需要调整一下。你可以改用这个正则表达式:

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

<强> Working demo

enter image description here