简单的问题,说我有两个正则表达式
rtmp.*?\b/
rtmp.+?\b/
如果我所做的测试有任何差异,这似乎可以忽略不计。
我理解这两种表达方式之间的技术差异。就我而言,两者都可以。正如问题所述,我只是询问性能差异(如果有的话)。我注意到的一个区别是+
需要egrep
grep 'rtmp.*?\b/'
egrep 'rtmp.+?\b/'
简单的问题,说我有两个正则表达式
rtmp.*?\b/
rtmp.+?\b/
如果我所做的测试有任何差异,这似乎可以忽略不计。
我理解这两种表达方式之间的技术差异。就我而言,两者都可以。正如问题所述,我只是询问性能差异(如果有的话)。我注意到的一个区别是+
需要egrep
grep 'rtmp.*?\b/'
egrep 'rtmp.+?\b/'
这两个表达式:
rtmp.*?\b/
rtmp.+?\b/
匹配不同的东西。*
表示“前一个表达式的零个或多个”(即任何数字),+
表示“一个或多个前一个表达式”。所以.*?
在非贪婪模式下匹配任意数量的任意字符,在非贪婪模式下.+?
匹配任意正数的任意字符。
速度差异无关紧要,请使用符合您意图的表达方式。
选择更适合您需求的;性能差异可以忽略不计。
*
星号表示前面的元素有零个或多个。
+
加号表示存在一个或多个前面的元素。
我注意到的一个区别是+
需要grep -E
grep 'http.*f4m'
grep -E 'http.+f4m'