请问,这样的正则表达式,怎么写?
比如,一个正则表达式的匹配结果有5000个,
怎样使得在匹配到第3个的时候,就停止匹配,因为,我只需要前三个匹配结果,后面的匹配都是无用的,影响效率
如果是在最后的5000个匹配结果集合中去取的话,效率低下。
[解决办法]
可以这样:
Match match = Regex.Match("12ab34de567ab890", @"\d+"); for (int i = 0; i < 3; i++) { if (match.Success) { Response.Write(match.Value + "<br/>"); match = match.NextMatch(); } }
[解决办法]
"Replace(String, MatchEvaluator, Int32) 在指定的输入字符串内,使用 MatchEvaluator 委托返回的字符串替换与某个正则表达式模式匹配的字符串(其数目为指定的最大数目)。"
以上是msdn的内容.
你可以利用MatchEvaluator这个匿名方法里的参数(实际就是匹配到的内容)做你想做的事.然后别替换就是了.
[解决办法]
不知道LZ是不是下面这个意思
http://msdn.microsoft.com/zh-cn/library/h09aybcd.aspx