正規表現を学んでいますが、基本式と拡張式に分かれています。
デフォルトの正規表現(BRE)はメタ文字を使用します[ ] ^ $ . *
。
grep
コマンドに従ってうまく機能します。ただしls
、または他のコマンドを使用してもecho
機能します。 (たとえば、ls -al [abc]*.txt
)
ところで、パス名拡張に関する部分を学んだときに、BREのメタ文字を使用しました。
だから私は彼らが同じだと思います。そうなんですか?
答え1
パス名拡張^
、、、$
または特別な意味はありません.
。
*
BREの文字またはグループは、ゼロ以上の反復に一致します(したがってa*
→、、、、、…)。先行文字に関係なく、パス名拡張のすべての文字列と一致します(したがって→ 、、、、... -
a
aa
aaa
*
a*
a
ab
a !!! and any ?? string whatsoever
ノート:BREと一致する空の文字列と一致しませんa*
。)についても同様です?
。- inの否定は、
[]
BREに先行し、パス名拡張を先行することによって^
行われます。!
.
.
パス名に特別な意味を持たないBREのすべての文字と一致します。模様。意味があります マッチしかし、パターン自体にはありません。
いくつかの表面的な類似点を除いて、非常に異なります。 BREではいくつかの操作が可能ですが、パス名の一致では不可能です(たとえば、a
sでのみ構成されたファイル名の一致を試みます)。