请问,这样的正则表达式,怎么写?

sdrsebh2 2012-03-19 06:50:17
比如,一个正则表达式的匹配结果有5000个,
怎样使得在匹配到第3个的时候,就停止匹配,因为,我只需要前三个匹配结果,后面的匹配都是无用的,影响效率
如果是在最后的5000个匹配结果集合中去取的话,效率低下。
...全文
106 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
porschev 2012-03-19
  • 打赏
  • 举报
回复

不知道LZ是不是下面这个意思

http://msdn.microsoft.com/zh-cn/library/h09aybcd.aspx
HimeTale 2012-03-19
  • 打赏
  • 举报
回复
"Replace(String, MatchEvaluator, Int32) 在指定的输入字符串内,使用 MatchEvaluator 委托返回的字符串替换与某个正则表达式模式匹配的字符串(其数目为指定的最大数目)。"

以上是msdn的内容.
你可以利用MatchEvaluator这个匿名方法里的参数(实际就是匹配到的内容)做你想做的事.然后别替换就是了.
dalmeeme 2012-03-19
  • 打赏
  • 举报
回复
可以这样:
		Match match = Regex.Match("12ab34de567ab890", @"\d+");
for (int i = 0; i < 3; i++)
{
if (match.Success)
{
Response.Write(match.Value + "<br/>");
match = match.NextMatch();
}
}

结果:
12
34
567

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧