基本上我想从字符串中检索所有可能的子字符串匹配,这是我的初始代码,但它只返回2个匹配。
String input = "abc12345abcd";
Regex regex = new Regex(@"[A-Za-z]{3}"); //this will only return 2 matches
MatchCollection matches = regex.Matches(input);
如何使用正则表达式获得以下匹配?
abc
abc
bcd
这是否可行,如果没有,LINQ会帮助这个吗?
答案 0 :(得分:3)
String input = "abc12345abcd";
Regex regex = new Regex(@"[A-Za-z]{3}");
int i=0;
while(i<input.Length){
Match m=regex.Match(input,i);
if(m.Success){
Console.WriteLine(m.Value);
i=m.Index+1; //just increment one char, instead of length of match string
}else break;
}
结果
abc
abc
bcd
答案 1 :(得分:2)