Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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