免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4359 | 回复: 7
打印 上一主题 下一主题

perl 正则匹配的o选项疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-10 09:43 |只看该作者 |倒序浏览
RT

我想提高正则匹配的效率和速度。

可是不知道这个o选项应该在什么时候用。看说明还是不太理解。

有没有具体的例子说明一下什么时候该用这个o选项?

论坛徽章:
0
2 [报告]
发表于 2011-12-10 09:46 |只看该作者
RT

我想提高正则匹配的效率和速度。

可是不知道这个o选项应该在什么时候用。看说明还是不太理解。

...
linfengfeiye 发表于 2011-12-10 09:43



    /o已经out了。现代perl的正则表达式都是裸字节流匹配的,足够优化以至于/o没什么用。

论坛徽章:
0
3 [报告]
发表于 2011-12-10 10:07 |只看该作者
回复 2# 兰花仙子


  那使用  qr/STRING/ 是否可以提高速度

我的文件分析结构是这样

foreach(<FILE>)
{
  if(/xxxxx/){
  ...
  }
  elsif(/xxxxx/){
   ...
  }
  elsif(/xxxxx/){
   ...
  }
  .....
}
这里面xxxxx有一些正则前面部分是是一样的,后面部分不一样。

请问仙子有没有一些提交处理大量文件时时间效率的建议?

论坛徽章:
0
4 [报告]
发表于 2011-12-10 11:01 |只看该作者
回复  兰花仙子


  那使用  qr/STRING/ 是否可以提高速度

我的文件分析结构是这样

foreach()
{ ...
linfengfeiye 发表于 2011-12-10 10:07



    如果你的匹配串是固定的,那么qr//也许好点,qr//返回一个编译过的regex对象。
不过我认为现在的perl的正则表达式已做了很多优化,编译也不一定有什么优势吧。
take a look at:
http://stackoverflow.com/questio ... provide-any-benefit

论坛徽章:
0
5 [报告]
发表于 2011-12-10 12:07 |只看该作者
回复 4# 兰花仙子


    我已经验证了 qr/STRING/  的功能,的确可以提高运行速度

当我使用最原始的正则表达式时脚本执行需要38秒。
当我将所有正则表达式加入/o参数后,执行时间需要31秒。
当我将所有表达式用qr/STRING/o构建对象后,执行时间需要18秒。

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
6 [报告]
发表于 2011-12-10 13:20 |只看该作者
回复  兰花仙子


    我已经验证了 qr/STRING/  的功能,的确可以提高运行速度

当我使用最原始的正 ...
linfengfeiye 发表于 2011-12-10 12:07



    所有的都加 /o ?除非你的正则表达式没有插入变量要不你悲剧了,另外 Perl 的正则表达式引擎一直在优化用更高版本的效率可能更好

论坛徽章:
0
7 [报告]
发表于 2011-12-11 16:59 |只看该作者
回复 6# zhlong8


    我的插入变量是参数传入的,所以第一次运行时就决定了。

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
8 [报告]
发表于 2011-12-12 12:01 |只看该作者
回复  zhlong8


    我的插入变量是参数传入的,所以第一次运行时就决定了。
linfengfeiye 发表于 2011-12-11 16:59



    你这算是唯一适用的地方了,用得好
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP