解决方案 »
- 我想用C#语句把下面的SQL查询结果显示在dataGridView里。该怎么写?求指教
- 求SQL高手进,百万量大的两库操作问题。
- C#如何实现在Excel中插入指定格式行,在线等 急用,解决马上送分
- 要命的线程问题
- 会了。net学j2EE需要多长时间?
- winform中实现模板文件的打印
- 哪们大虾有vs.net的序列号呀????????????????
- 如何知道当前运行程序的路径呢??
- 看看这个东西,我只是想从sqlserver读图片,可是怎么也不行,郁闷ing
- 如何判断treeview下面是否存在child?
- 请问Access数据库表里的字段名都是空格或斜杠,要怎么批量处理去掉呢?
- C# 发送数据提示 远程服务器返回错误: (500) 内部服务器错误
2.正则表达式能否匹配成功与RegexOptions.Compiled没有任何关系
3.启动速度应该不是你的程序关心的问题,所以RegexOptions.Compiled一定要用,所以你也没必要用CompileToAssembly
我用的是这个正则:
@"http://([a-z0-9]|.|/|\\-)+\.(jpg)|(bmp)|(gif)|(png)"使用RegexOptions.Compiled
1,000,000次匹配
耗时10.8秒
不使用RegexOptions.Compiled
1,000,000次匹配
耗时29.0秒耗时大概在2~3倍
1.gdstfox:去掉 RegexOptions.Compiled 是可以提取的,我说错了,去掉 RegexOptions.IgnoreCase 只能提取 字符是大写的信息,小写的都提取不到,搜索很久才搜索出全是大写符合表达式的信息。2.gdstfox:去掉 RegexOptions.Compiled 是可以提取的,但是去掉后仍然占用很大的CPU资源,怎么办?3.上面的正则表达式是从网络上COPY的,因此可能有错,我自己用的是另外的,但是占用CPU问题和表达式没有关系吧4.hui_play:不用正则用什么办法提取里边的信息?要提取源码里边的邮箱的话,怎么提取?5.现在的情况是用与不用RegexOptions.Compiled 都占用很多CPU资源,该怎么办?
所以CPU利用率很高也正常,但是你可以将你的线程数设置为比你CPU的核心数量少1,来保证还有剩余的CPU资源来流畅的响应UI
2.同样的CPU利用率,加了RegexOptions.Compiled,肯定会有更快的处理速度
3.DoNet里对正则的实现确实不敢恭维,至少我知道perl的正则要比它快很多,当然也可能因为perl是一种懒人写的东西,忽略了一些意义不大的规则,而DoNet实现的肯定是完全按照标准来的
4.正则表达式的执行速度很大程度取决于你写的质量,提取同样的内容,有不同的写法,有的效率极高,有的效率极差
请教以下两个邮箱正则表达式 预计效率如何? 可以优化吗?1.[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}
2.[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}