Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

extglobの正規表現におけるオプションについて

shuzo-kino.hateblo.jp
の補足のような内容です。
用意されている正規表現オプションは

  • @:一回だけ
  • *:ゼロ回以上
  • +:一回以上
  • ?:ゼロまたは一個
  • !:これらに一致しないもの

実際のところ

ためしに、"@"をつかって正規のjpgだけ引っ張ってくるケースを考えます。

#!/usr/bin/env bash

shopt -s extglob

SAMPLESTR="hoge.jpeg"

if [[ "$SAMPLESTR" == *.@(jpg|jpeg) ]]
then
  echo MATCH
else
  echo NOT MATCH
fi

実行すると

$ ./hoge.bash 
./hoge.bash 
MATCH

ここで文字列を"hoge.jpegjpg"にすると

$ ./hoge.bash 
./hoge.bash 
NOT MATCH