我在尝试查找一段文本中的多个匹配时遇到了问题。文本格式如下:Regex.Matches无法找到多个匹配
string text = "#IDENTIFIER http://www.link1.com #IDENTIFIER http://www.link2.org #IDENTIFIER http://www.link3.com #IDENTIFIER http://www.link4.net";
我的目标是从这个提取每个#IDENTIFIER链接发生,我使用下面的代码做它:
string pat = @"(#IDENTIFIER)(.*)\.(com|org|net)";
MatchCollection matches = Regex.Matches(text, pat);
foreach(Match match in matches) {
Console.WriteLine("'{0}' found at index {1}.", match.Value, match.Index);
}
的问题是,它返回一个匹配而不是4.为什么忽略了中间模式?
你知道我失踪了吗?
令人惊叹的,谢谢! – dspfnder
尝试'RegexOptions.RightToLeft'。处理循环前缀时通常起作用。 –
@劳埃德是正确的,但如果它是一个多线问题使用m标志:https://msdn.microsoft.com/en-US/library/yd1hzczs(v=vs.110).aspx – jojomojo