Regex 在电视节目文件名的字符串中搜索正则表达式

Regex 在电视节目文件名的字符串中搜索正则表达式,regex,bash,Regex,Bash,我正在尝试测试文件名是否有季节和字母编号,目前为止还很糟糕: for f in "${folderToClean}"/*.mkv do filenameWithoutExtension=`basename "${f%.*}"` echo "$filenameWithoutExtension file..." if [[ "$filenameWithoutExtension" =~ [sS][\d]+[Ee][\d]+ ]]; then echo 'pouet' fi d

我正在尝试测试文件名是否有季节和字母编号,目前为止还很糟糕:

for f in "${folderToClean}"/*.mkv
do
  filenameWithoutExtension=`basename "${f%.*}"`
  echo "$filenameWithoutExtension file..."

  if [[ "$filenameWithoutExtension" =~ [sS][\d]+[Ee][\d]+ ]]; then
    echo 'pouet'
  fi
done

对于像My.TV.show.S01E02.1080p.mkv这样的文件名,我没有得到任何结果…哦,天哪,我非常讨厌正则表达式…

[[…]]
不知道
\d

替换

[sS][\d]+[Ee][\d]+


谢谢成功了!你知道像regex101这样的工具有没有可能帮助我在[[]]范围内测试regex?我必须通过。
=~
右侧被认为是一个扩展正则表达式。您知道是否可以在正则表达式结果之前(不包括)捕获字符串?这是什么<代码>[“My.TV.show.S01E02.1080p”=~(.*)[sS][0-9]+[Ee][0-9]+]&&echo“${BASH_REMATCH[1]}”查看RegExr,您可能会发现它有助于开发regex模式
[sS][0-9]+[Ee][0-9]+