首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >风味与效率

风味与效率
EN

Stack Overflow用户
提问于 2013-10-10 15:58:10
回答 1查看 115关注 0票数 3

就使用ORAND运算符或背靠背字符类之间的效率而言。

在下面的字符串数据中。

代码语言:javascript
代码运行次数:0
运行
复制
1A
A1
$1
$$

以下表达方式:

代码语言:javascript
代码运行次数:0
运行
复制
^[\w\W][\w\W]$

^(?:\w|\W)(?:\w|\W)$

^[\w&&\W](?:[\w&&\W])$

一致性在这里会有什么影响,除了一个人想要的使用表达式的味道之外,这里真正的区别是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-10 16:13:03

使用http://regex101.com/正则表达式调试器,您可以看到模式匹配的不同之处。主要的区别是速度:

  • ^[\w\W][\w\W]$需要6个步骤来匹配一个字符串
  • ^(?:\w|\W)(?:\w|\W)$需要10个步骤来匹配一个字符串
  • ^[\w&&\W](?:[\w&&\W])$需要8个步骤来匹配一个字符串

当然,这在很大程度上取决于正则表达式、引擎的实现和可能的优化。

编辑

  • ^..$还需要6个步骤

步骤的数量不一定与速度直接相关,但是在大多数情况下(如果正则表达式足够琐碎),可读性和可维护性更好的regex提供了比xy微秒节省速度更多的好处(同样取决于用例和输入数据)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19300704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档