我的目标是找到文本中某个模式的所有匹配项。假设我的模式是:
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"
问题:
- 哪一个是错的:我的期望,我的正则表达式或类的使用?
- 如何达到我的示例所示的结果?
提前致谢。