
Match m = Regex.Match(HTMLSourceString,"href=[\\"\\'](http:\/\/|\.\/|\/)?\w+(\.\w+)*(\/\w+(\.\w+)?)*(\/|\?\w*=\w*(&\w*=\w*)*)?[\\"\\']"); if (m.Success) { Console.Writeline("values = " + m); } 但是,它只返回一个结果,而不是HTML页面上所有href标记的列表.我知道它有效,因为当我尝试RegexOptions.RightToleft时,它返回字符串中的最后一个href标签.
我的if语句有什么东西不允许我返回所有结果吗?
解决方法 如果使用Match而不是Matches,则需要使用循环来获取在每个循环结束时调用m.Nextmatch()的所有匹配项.例如:Match m = Regex.Match(HTMLSourceString,"href=[\\"\\'](http:\/\/|\.\/|\/)?\w+(\.\w+)*(\/\w+(\.\w+)?)*(\/|\?\w*=\w*(&\w*=\w*)*)?[\\"\\']"); Console.Write("values = "); while (m.Success) { Console.Write(m.Value); Console.Write(","); // Delimiter m = m.Nextmatch(); } Console.Writeline(); 总结 以上是内存溢出为你收集整理的c# – 为什么Regex.Match只返回1个结果?全部内容,希望文章能够帮你解决c# – 为什么Regex.Match只返回1个结果?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)