首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GREP - Regex +(加号)与*(星号)性能

GREP - Regex +(加号)与*(星号)性能
EN

Stack Overflow用户
提问于 2012-05-20 10:19:48
回答 3查看 4.1K关注 0票数 3

简单的问题是,假设我有两个正则表达式

代码语言:javascript
复制
rtmp.*?\b/
rtmp.+?\b/

在我所做的测试中,这似乎是微不足道的差异。

我理解这两个表达之间的技术差异。在我的情况下,任何一个都可以。正如问题所述,我只是在问性能差异,如果有的话。我注意到的一个区别是+需要egrep

代码语言:javascript
复制
 grep 'rtmp.*?\b/'
egrep 'rtmp.+?\b/'
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-20 10:28:16

这两个表达式:

代码语言:javascript
复制
rtmp.*?\b/
rtmp.+?\b/

匹配不同的东西。*表示“前一个表达式的零个或多个”(即任何数字),+表示“一个或多个前一个表达式”。因此,在非贪婪模式下,.*?匹配任意数量的任意字符,而在非贪婪模式下,.+?匹配任意正数的任意字符。

速度的差异是无关紧要的,使用与您的意图匹配的表达式。

票数 9
EN

Stack Overflow用户

发布于 2012-05-20 10:24:46

选择一个更适合您的需求;性能差异可以忽略不计。

*星号表示前面的元素有零个或多个。

+加号表示前面有一个或多个元素。

票数 2
EN

Stack Overflow用户

发布于 2012-05-20 11:14:17

我注意到的一个区别是+需要grep -E

代码语言:javascript
复制
grep 'http.*f4m'

grep -E 'http.+f4m'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10670294

复制
相关文章

相似问题

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