1
grep "http:\/\/.*\.jpg" index.html -o

http://で始まり.jpgで終わるテキストが表示されます

以下も同様です。grep "http:\/\/.*\.\(jpg\)" index.html -o

違いはなんですか?そして、これが失敗する可能性のある条件はありますか?

この正規表現を使用して、jpg、png、または gif のいずれかに一致するようにしました。

http:\/\/.*\.\(jpg\|png\|gif\)

私が読んだ後方参照または正規表現のグループ化と関係があります。この部分が理解できない\(\)

4

2 に答える 2

2

グループ化は、正規表現で 2 つの目的で使用されます。

1 つの使用法は、代替を使用するときに正規表現の一部を区切ることです。これは 3 番目の正規表現の場合で、拡張子が jpg、png、または gif のいずれかであると言うことができます。

もう 1 つの用途は、後方参照です。これにより、正規表現の後半で、正規表現の前の部分に一致したテキストを参照できます。たとえば、次の正規表現は、連続して 2 回出現する任意の文字に一致します。

\([a-z]\)\1

後方参照 \1 は、「正規表現の最初のグループに一致するものに一致する」ことを意味します。

于 2012-11-07T09:59:03.280 に答える
1

()メタ文字です。つまり、それらは自分自身と一致しませんが、何かを意味しgrepます。

ここから:

グループ化は、バックスラッシュの後に括弧'('、')'を付けて実行されます。

したがって、上記で、文字で区切られた一致する可能性のグループをそれらの中\(で定義します。つまり、ファイル名拡張子。\)|

于 2012-11-07T09:43:30.957 に答える