我使用了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
(逗号之后还有一个空格)
有什么建议吗?
谢谢!
答案 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()));
}