![](/img/trans.png)
[英]Regex to match the first file in a rar archive file set in Python
[英]python regex expression to match (first multipart or simple part) rar archive
我想要比赛
多部分rar 存档中的第一个元素,
regex (.*.)part0*1.rar
或者
^.*(part\\d+).rar$
我使用这个正则表达式:
regex = r"(.*)(?:part0*1|.*[^(part\d+)])\.rar"
我有一些问题:
group(1)="apps"
而不是group(1)="app"
你能在正则表达式中找到错误吗?
谢谢
你有时会匹配到最后一个字符的原因是因为你尝试的模式(.*)(?:part0*1|.*[^(part\\d+)])\\.rar
,首先在捕获组中捕获整行1.
该捕获组后跟匹配part0*1
或.*[^(part\\d+)]
的交替
您可以看到部分后面跟有数字的行是匹配的。
但是,当没有匹配part0*1
,会尝试下一个替代方案,即.*[^(part\\d+)]
。
第二个选择匹配直到字符串的末尾(它已经在那里),然后匹配[^(part\\d+)]
的单个字符,因为使用方括号使其成为没有量词的字符类。
一种选择可能是使用否定前瞻断言字符串不包含part
后跟可选零以及字符 2-9 和可选数字或|
1-9 和 1 个或多个数字。
^(?!.*part0*(?:[2-9]\d*|[1-9]\d+)\.rar)(.+)\.rar$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.