我是regex的新手,只是想知道是否可以在比赛中找到“重叠”组。
假设以下字符串:
20122 0029431 7094 0111 5890
我现在想要的所有比赛是:4号+空格+ 4号+空格+ 4号
我尝试的是:[0-9]{4}[\s][0-9]{4}[\s][0-9]{4}
但这只是给了我:9431 7094 0111
我想要的是这些比赛:
这可以用正则表达式吗?
答案 0 :(得分:3)
是的,如果您将lookahead assertions与capturing groups结合使用:
Regex regexObj = new Regex(@"(?=(\d{4}\s\d{4}\s\d{4}))");
Match matchResult = regexObj.Match(subjectString);
while (matchResult.Success) {
resultList.Add(matchResult.Groups[1].Value);
matchResult = matchResult.NextMatch();
}