正则表达式 rar 存档

regex rar archive

我有这个正则表达式:

.*part0?0?1.rar

还有这个:

匹配

S01.rar
S23.part1.rar
s4.part01.rar
Movie.rar
Youtube Movie.part1.rar
123Mov Ddaa.part01.rar
123Mov Ddaa.part001.rar

不匹配

S01.part02.rar
S2.part4.rar
Movie.part3.rar
Youtube Movie.part08.rar
123Mov Ddaa.part002.rar

我用https://regexr.com/

测试

如何匹配匹配下的所有单词?抱歉我的英语非常非常糟糕:/

原来你想在Bash中使用正则表达式。您需要的正则表达式将匹配任何包含 part 且后跟除 101001 以外的数字的字符串,即 part 之后的数字必须是大于 1 并否定 结果。

参见 Bash demo 打印 anything:

file="Youtube Movie.part01.rar"
regex='part(0*[2-9][0-9]*|0*1[0-9]+)\.rar'
if ! [[ $file =~ $regex ]]
then
    echo "anything"
fi

在这里,part(0*[2-9][0-9]*|0*1[0-9]+)\.rar匹配

  • part - 文字子字符串 part
  • (0*[2-9][0-9]*|0*1[0-9]+) - 两种选择之一:
    • 0* - 零个或多个 0 个字符
    • [2-9] - 从 29
    • 的数字
    • [0-9]* - 任何 0+ ASCII 数字
    • |
    • 0*1[0-9]+ - 零个或多个 0 个字符,1 然后一个或多个任意数字
  • \. - 一个点
  • rar - rar 子串。

if ! [[ $file =~ $regex ]]表示"if the $regex does not match the $file, show anything"。