class\\s*=\\s*(?<tag1>\"?)(?<content>(\\s*\\w+)*)\\s*EditBoder\\k<tag1>具体在下面的语句中,我 看好像是去掉 EditBoder的,可是当字符串中没有Editborder的时候, 程序几乎停了下来。
要四五分钟才走过去,为什么呀
Regex regex = new Regex("class\\s*=\\s*(?<tag1>\"?)(?<content>(\\s*\\w+)*)\\s*EditBoder\\k<tag1>",
RegexOptions.Compiled | RegexOptions.ExplicitCapture | RegexOptions.IgnoreCase | RegexOptions.Singleline);
currentSetting = regex.Replace(currentSetting, "class=${tag1}${content}${tag1}");
要四五分钟才走过去,为什么呀
Regex regex = new Regex("class\\s*=\\s*(?<tag1>\"?)(?<content>(\\s*\\w+)*)\\s*EditBoder\\k<tag1>",
RegexOptions.Compiled | RegexOptions.ExplicitCapture | RegexOptions.IgnoreCase | RegexOptions.Singleline);
currentSetting = regex.Replace(currentSetting, "class=${tag1}${content}${tag1}");
解决方案 »
- 对数据库数据进行增删查时,如何保证数据的正常读取
- 为什么要使用静态的方法?
- 秀代码!C# 多重map的实现!
- 问:在Windows程序中.如何给DataGrid分页,并且点击某一行后显示该行的详细信息?
- 建虚拟目录,选择另一计算机上的共享位置,建完了出错,怎么解决?
- c#中线程莫名其妙stopped了!!!
- 如何在程序运行读取数据时文本框中的数据不断的累加
- Server.Execute 路径中具有非法字符
- 祝大家国庆愉快
- 有两个类classA,classB,他们的方法名完全一样,现在想要实现这样的功能……
- nhibernate INSERT时 当没有给类属性附值时,保存时不是数据库的默认值而是NULL
- 为什么我读文件时会引起MouseMove的异常
还有这个正则本身就是矛盾的,前边声明引号可有可无,但如果没有引号,中间居然又允许有空格,根本就没法判别class标签到哪里结束
程序几乎停下来是滥用非贪婪模式,多重循环尝试匹配,从而导致效率陷阱
这种正则不用也罢,先用下面的试下,如果不满足,楼主说下你的需求,重写一个吧currentSetting = Regex.Replace(currentSetting, @"(?<=class\s*=\s*([""'])[^""']*?)EditBoder(?=[^'""]*\1)", "", RegexOptions.IgnoreCase);
是一个模板替换模块中的,
最近,对有些模板,替换的时候非常慢,
于是让我找原因。