=~演算子で使用できるREは何ですか?

=~演算子で使用できるREは何ですか?

これマニュアルページbashオペレーターがこう言われています=~

==と!=と同じ優先順位を持つ追加の2項演算子=~を使用することもできます。使用すると、演算子の右側の文字列は拡張正規表現として扱われ、それに応じて一致します(例:正規表現(3))

しかし、マイナーなREでも動作しないようです。私のユースケースは次のとおりです。

n='hello'
[[ "$n" =~ 'llo' ]] && echo yes || echo no   # <-- yes
[[ "$n" =~ 'llo$' ]] && echo yes || echo no  # <-- no

これが$EOLの標準RE指標ですが、2番目の比較で「いいえ」を返すのはなぜですか?

ベストアンサー1

マニュアルページを注意深く読んでおらず、次のように書かれています。

パターンのすべての部分を引用して、引用された部分を文字列に一致させることができます。

したがって、$文字列では、文字列の終わりではなく文字通りのドル記号を意味します。文字列から移動して$機能させます。

$ [[ "$n" =~ 'llo'$ ]] && echo yes || echo no
yes

おすすめ記事