我必须编写正则表达式才能从文本中获取三个单词。单词用一个空格分隔。我写的代码并不是所有的序列。例如,对于文本“一二三四五六”,我只得到了两个序列:1.一个两个三个2.四个五六个。但我希望我的正则表达式给我所有的序列,所以输出结果是:1.一两三3.二三四3.三四五。四,五六。 有人可以告诉我,我的正则表达式有什么问题吗? 这里是我的代码:从文本中获取3个单词
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();
我不明白这个问题。对我来说,所有的序列将是*一二三*,*两三四*,*三四五*和*四五六* – m0skit0
是的,你是赖特,我很抱歉。我想得到所有的序列: 一二三三二三四三五五四五六。 我已经编辑了我的问题 – Yarik
我不认为你只用一个正则表达式和一个迭代就可以做你想做的事。 – m0skit0