首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >regex rar档案

regex rar档案
EN

Stack Overflow用户
提问于 2017-11-04 21:48:48
回答 1查看 202关注 0票数 1

我有这样的判决:

代码语言:javascript
复制
.*part0?0?1.rar

这是:

匹配

代码语言:javascript
复制
S01.rar
S23.part1.rar
s4.part01.rar
Movie.rar
Youtube Movie.part1.rar
123Mov Ddaa.part01.rar
123Mov Ddaa.part001.rar

不匹配

代码语言:javascript
复制
S01.part02.rar
S2.part4.rar
Movie.part3.rar
Youtube Movie.part08.rar
123Mov Ddaa.part002.rar

我用https://regexr.com/进行测试

我怎么能把比赛中的所有单词都匹配起来呢?代表我非常糟糕的英语:/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-04 22:03:36

原来你想在Bash中使用正则表达式。所需的正则表达式将匹配任何包含part的字符串,该字符串没有跟随101001以外的数字,即part后面的数字必须大于1并否定结果。

巴什演示打印anything

代码语言:javascript
复制
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,然后一个或多个任意数字

  • \. -a点
  • rar -一个rar子字符串。

if ! [[ $file =~ $regex ]]的意思是“如果$regex$file不匹配,则显示anything”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47115958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档