的模式的多个匹配项时的行为与预期不符预期我的目标是在文本中查找某些模式的所有匹配项。 比方说,我的模式是:.NET Regex.Matches在查找包含*()
h.*o
这意味着我在寻找任何文本开始'h'
与'o'
结束并具有(也为零)之间的任意数字字符的。
我的理解是,方法Matches()
将提供多个匹配根据描述(见MSDN)。
const string input = "hello hllo helo";
Regex regex = new Regex("h.*o");
var result = regex.Matches(input);
foreach (Match match in result)
{
Console.WriteLine(match.Value);
}
我的期望是:
1. "hello"
2. "hllo"
3. "helo"
4. "hello hllo"
5. "hello hllo helo"
令我惊讶返回比赛只包含一个字符串 - 整个输入字符串。
"hello hllo helo"
问题:
- 哪一个是错误的:我的意料,我的正则表达式或阶级的使用情况如何?
- 如何实现我的例子中显示的结果?
在此先感谢。