Oreilly の著書「Classic Shell Scripting」セクション 3.2.2.4「アンカー テキスト マッチ」で、対応する [^] が正規表現ではないのはなぜですか?
なぜ正規表現ではないのかわかりませんか?誰かヒントをくれませんか?
Oreilly の著書「Classic Shell Scripting」セクション 3.2.2.4「アンカー テキスト マッチ」で、対応する [^] が正規表現ではないのはなぜですか?
なぜ正規表現ではないのかわかりませんか?誰かヒントをくれませんか?
[]
文字クラスを意味します。
文字クラスのコンテキスト内では^
、先頭の a は否定を意味します。つまり、後続のすべての文字が一致してはなりません。
だから、[^]
無意味であり、許可されていません。
有効かどうかは、実際には正規表現のフレーバーに依存し[^]
ます。
JavaScriptでは、[^]
は有効であり、任意の文字を示します。ただし、他のほとんどのフレーバーでは、文字クラスの宣言を空にすることはできません。
コンテキストがほとんどないため、推測するだけ[^]
ですが、不完全な文字クラスであるため、正規表現ではありません。[^a]
は正規表現になります。「a」以外の文字に一致します。