我必须编写一个正则表达式才能从文本中获取三个单词。单词用一个空格分隔。我写的代码不是给我所有的序列。例如对于文本“一二三四五六”,我只有两个序列:1.一二三 2.四五六。但我希望我的正则表达式给我所有的序列,所以输出将是:1.一二三 2.二三四 3.三四五。4.四五六。有人可以告诉我我的正则表达式有什么问题吗?这是我的代码:
string input = "one two three four five six";
string pattern = @"([a-zA-Z]+ ){2}[a-zA-Z]+";
Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
MatchCollection matches = rgx.Matches(input);
if (matches.Count > 0)
{
Console.WriteLine("{0} ({1} matches):", input, matches.Count);
Console.WriteLine();
foreach (Match match in matches)
Console.WriteLine(match.Value);
}
Console.ReadLine();