私はUnixに初めて触れ、bash言語を学びようとしています。 「Test Expressions」に入ると、次のことがわかりました。
[[ "whatever" =~ h[aeiou] ]]
答えを読んだ。この問題だから=~演算子が何をしているのか理解しています。前のコマンドを実行すると、条件が満たされたことを示す出力が表示echo $?
されます。入ると0
[[ ]]
[[ "whatever" =~ h[sdfghjkl] ]]
の出力はecho $?
なので1
条件が満たされません。
だから私はh[aeiou]
何が何であるか知りたいですh[sdfghjkl]
。式にh
事前定義された関数がありますか[[ ]]
?それでは何をしていますか?そうでなければh[aeiou]
実際にh{sdfghjkl]
は何ですか?
ありがとうございます。
ベストアンサー1
他の文書であるパターンマッチングで述べたように、=~
右側のオペランドは正規表現です。
括弧はh[aeiou]
正規表現構文の一部であり、そこには名前付き関数はありません。h[aeiou]
は と一致し、 はh
次のいずれかと一致するので、aeiou
と後ろがあるのでwhatever
一致します。h
a
正規表現について聞くことができるので、詳しく見てください。
- https://en.wikipedia.org/wiki/Regular_expression
- https://regexone.com/
- 私の正規表現がXでは動作しますが、Yでは動作しないのはなぜですか?
(ウィキペディアページにも公式な内容が含まれているようですので、とてもつまらないでください。)