3

簡単な質問です。2つの正規表現があるとしましょう

rtmp.*?\b/
rtmp.+?\b/

私が行ったテストに違いがあったとしても、それはごくわずかな違いのようです。

2つの表現の技術的な違いを理解しています。私の場合、どちらでもかまいません。質問が述べているように、私は単にパフォーマンスの違いについて尋ねています。私が気づいた違いの1つは+egrep

 grep 'rtmp.*?\b/'
egrep 'rtmp.+?\b/'
4

3 に答える 3

9

これらの2つの式:

rtmp.*?\b/
rtmp.+?\b/

さまざまなものに一致します。*「前の式の0個以上」(つまり任意の数)を+意味し、「前の式の1つ以上」を意味します。したがって.*?、非欲張りモードでは任意の数の任意の文字と.+?一致し、非欲張りモードでは任意の正の数の任意の文字と一致します。

速度の違いは重要ではありません。意図に合った表現を使用してください。

于 2012-05-20T02:28:16.393 に答える
2

ニーズにより適したものを選択してください。性能の違いはごくわずかです。

*アスタリスクは、先行する要素が0個以上あることを示します。
+プラス記号は、前の要素が1つ以上あることを示します。

于 2012-05-20T02:24:46.333 に答える
0

私が気づいた違いの1つは+grep -E

grep 'http.*f4m'

grep -E 'http.+f4m'
于 2012-05-20T03:14:17.473 に答える