デフォルトの正規表現はシェルのパス名拡張と同じですか? [コピー]

デフォルトの正規表現はシェルのパス名拡張と同じですか? [コピー]

正規表現を学んでいますが、基本式と拡張式に分かれています。

デフォルトの正規表現(BRE)はメタ文字を使用します[ ] ^ $ . *

grepコマンドに従ってうまく機能します。ただしls、または他のコマンドを使用してもecho機能します。 (たとえば、ls -al [abc]*.txt

ところで、パス名拡張に関する部分を学んだときに、BREのメタ文字を使用しました。

だから私は彼らが同じだと思います。そうなんですか?

ベストアンサー1

パス名拡張^、、、$または特別な意味はありません.

  1. *BREの文字またはグループは、ゼロ以上の反復に一致します(したがってa* 、、、、、…)。先行文字に関係なく、パス名拡張のすべての文字列と一致します(したがって→ 、、、、... -aaaaaa*a*aaba !!! and any ?? string whatsoeverノート:BREと一致する空の文字列と一致しませんa*。)についても同様です?
  2. inの否定は、[]BREに先行し、パス名拡張を先行することによって^行われます。!
  3. ..パス名に特別な意味を持たないBREのすべての文字と一致します。模様。意味があります マッチしかし、パターン自体にはありません。

いくつかの表面的な類似点を除いて、非常に異なります。 BREではいくつかの操作が可能ですが、パス名の一致では不可能です(たとえば、asでのみ構成されたファイル名の一致を試みます)。

おすすめ記事