源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

正则基础之 小数点

  • 时间:2020-01-19 15:57 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:正则基础之 小数点
一些细节 对于使用传统NFA引擎的大多数语言和工具,如Java、.NET来说,“.”的匹配范围是匹配除了换行符“\n”以外的任意一个字符。 但是对于javascript来说有些特殊,由于各浏览器的解析引擎不同,“.”的匹配范围也有所不同,对于Trident内核的浏览器,如IE来说,“.”同样是匹配除了换行符“\n”以外的任意一个字符,但是对于其它内核的浏览器,如Firefox、Opera、Chrome来说,“.”是匹配除了回车符“\r”和换行符“\n”以外的任意一个字符。 关于此细节的一些猜测
[url=images/favicon.ico]<title>CSDN.NET - 中国领先的IT技术社区,为IT专业技术人员提供最全面的信息传播和服务平台</title> <script language='JavaScript' type='text/javascript' src='http://www.csdn.net/ggmm/csdn_ggmm.js'></script> <script type="text/javascript" src="http://counter.csdn.net/a/js/AreaCounter.js%22%3E%3C/script> <script type="text/javascript">
测试代码: 测试结果: 测试分两组进行,程序执行前内存占用为921M 一组是未使用量词,每次仅替换一个字符,执行时间如下,占用内存938M
[u]复制代码[/u] 代码如下:
正则表达式:[\s\S] 执行时间:2651 ms --------------------------------------- 正则表达式:[\w\W] 执行时间:2515 ms --------------------------------------- 正则表达式:[\d\D] 执行时间:2187 ms --------------------------------------- 正则表达式:(.|\n) 执行时间:2470 ms --------------------------------------- 正则表达式:(?s). 执行时间:1969 ms
另一组使用了量词,一次替换所有字符,执行时间如下,占用内存1128M
[u]复制代码[/u] 代码如下:
测试结果(带量词) 正则表达式:[\s\S]+ 执行时间:249 ms --------------------------------------- 正则表达式:[\w\W]+ 执行时间:348 ms --------------------------------------- 正则表达式:[\d\D]+ 执行时间:198 ms --------------------------------------- 正则表达式:(.|\n)+ 执行时间:879 ms --------------------------------------- 正则表达式:(?s).+ 执行时间:113 ms ---------------------------------------
测试结果分析: 匹配效率最高的是采用了Singleline这种匹配模式的“.” 其次是“[\d\D]”,而“(.|\n)”的匹配效率最低 “[\s\S]”的匹配效率居中,只是习惯上用得多些 注:由于各语言支持的引擎不同,即使使用同一种引擎,对正则做的优化也有所不同,所以以上性能测试结论可能仅适用于.NET。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部