关于正则表达式的效率问题
假设有两条正则表达式,r1和r2,对同一段文本t进行匹配,现在有两种做法
1.使用r1扫描t,再用r2扫描t;
2.构造一个新的正则表达式(?:r1)|(?:r2)来扫描t;
不知道这两种方法那种效率会高一点,我个人觉得2会好点,因为消除了一部分回溯(1中使用r2扫描t等于手动回溯到t的头部),但是网上说正则尽量拆分开来效率会高点,不是太明白其中的原理啊
由于正则大多数都是使用的perl风格,就发在这了。希望有高手能给指条明路
1.使用r1扫描t,再用r2扫描t;
2.构造一个新的正则表达式(?:r1)|(?:r2)来扫描t;
不知道这两种方法那种效率会高一点,我个人觉得2会好点,因为消除了一部分回溯(1中使用r2扫描t等于手动回溯到t的头部),但是网上说正则尽量拆分开来效率会高点,不是太明白其中的原理啊
由于正则大多数都是使用的perl风格,就发在这了。希望有高手能给指条明路
作者: biped 发布时间: 2011-05-22
当然是只扫一遍
作者: yq_118 发布时间: 2011-05-22
自己测。别人随便说的你也信?万一他说错了怎么办?
作者: iambic 发布时间: 2011-05-22