避免不必要的回溯

从Perl5.10版开始,正则表达式引擎可以自动为备选文本建立检索树,因此一般无需特意关注这方面的细节。

1.用字符组[abc]代替多选结构

所需匹配的全是单个字符,因此用字符组表示可选就足够了:

while(<>) {
  push @var , m '([$@%&]\w+)'g;
}

2.避免量词引起的不必要回溯

3.永不回溯的占有优先量词

Perl 5.10 引入了”占有优先“量词。在任意词后面加上一个+号,该量词就变成占有优先量词,不再回溯。

posted @ 2013-04-07 08:40  新闻官  阅读(142)  评论(0编辑  收藏  举报