首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请教,这样的正则表达式,如何写

2012-03-26 
请问,这样的正则表达式,怎么写?比如,一个正则表达式的匹配结果有5000个,怎样使得在匹配到第3个的时候,就停

请问,这样的正则表达式,怎么写?
比如,一个正则表达式的匹配结果有5000个,
怎样使得在匹配到第3个的时候,就停止匹配,因为,我只需要前三个匹配结果,后面的匹配都是无用的,影响效率
如果是在最后的5000个匹配结果集合中去取的话,效率低下。

[解决办法]
可以这样:

C# code
        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

热点排行