【发布时间】:2013-01-22 12:27:10
【问题描述】:
我必须编写一个正则表达式才能从文本中获取三个单词。单词用一个空格分隔。我写的代码不是给我所有的序列。 例如对于文本“一二三四五六”,我只有两个序列: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();
【问题讨论】:
-
我不明白这个问题。对我来说,所有序列都是一二三、二三四、三四五和四五六
-
是的,你是对的,对不起。我想得到所有的序列:一二三、二三四、三四五和四五六。我已经编辑了我的问题
-
我认为你不能只用一个正则表达式和一个迭代来做你想做的事。
-
但是如何使用多个正则表达式呢?