我相信下面的两个正则表达式做了同样的事情:
\ba{3}\b
(?=\ba{3}\b).*这两个词只匹配第二个单词(aaa):
我想知道在性能方面还是在其他方面是否有什么区别,或者因为某种原因,其中一个比另一个更可取。
编辑:
确实,上面的模式匹配不同的东西( "aaa“和”aaa bbb")。对不起,是我的错。
我最初的模式是:
(?=^a{3}$).*
^a{3}$我最初的例子是:
zzz
aaa
bbb就像这样,我认为这两种模式都符合"aaa“。
我知道第二个更快。还有什么区别吗?
发布于 2013-12-21 16:09:09
谈到正则表达式,我想到了三件事:
与所需字符串匹配的任何正则表达式的简单性与其速度有直接关系,因此使用较少的表达式,您将有更快的速度搜索整个文本。
有些表达式真的很贵,所以当你试图选择你的正则表达式的最佳选择时,你为什么要想得更多?!
在regex ^a{3}$上,引擎会说:,我真的是认真的!它是直接的,简单的,有一个明显的匹配域。
然而,在第二个(?=^a{3}$).*引擎并不意味着它。它可能有这么多匹配的情况,它有一个积极的展望和消耗更多的资源。
现在,你要爱哪一个?
发布于 2013-12-19 17:26:18
正如曾傑瑞在评论中指出的,第二个与aaa bbb相匹配。然而,就我个人而言,我认为它比\ba{3}\b.*更简单
https://stackoverflow.com/questions/20687933
复制相似问题