当有多个空格或有逗号和空格时,C#中的正则表达式不匹配

时间:2016-05-10 10:23:58

标签: c# regex

我使用了C#,我希望匹配用逗号分隔的3个双打(可能是“不”)或\和空格(可能是“不”和“一个或多个”)

我做了:

 Regex regex = new Regex(@"\d+[,|\s*]\d+[,|\s*]\d+");
 Match match = regex.Match(mystr.Text);

问题是以下文字不匹配:

33 44 55 (33之后,44之后有两个空格)

此外,比赛没有抓住:

33, 44, 55 (逗号之后还有一个空格)

有什么建议吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

括号内的正则表达式是错误的,你可以试试这个:

\d+[,\s]*\d+[,\s]*\d+

答案 1 :(得分:1)

这样的功能对你有用吗?

 (\d{2},?\s+){2}\d{2}

它匹配2位数字,然后是零或一个逗号,有多个空格,它是两次,以2位数结尾?

答案 2 :(得分:1)

这是一个简单的解决方案

string nmbrs = "33  44";
string numberPattern = @"\d+(?=[,\s]*\d+[,\s]*)\d+";
var matches = Regex.Matches(nmbrs, numberPattern);
List<int> numbersList = new List<int>();
foreach (var match in matches)
{
    numbersList.Add(int.Parse(match.ToString()));
}