【发布时间】:2010-09-11 17:09:39
【问题描述】:
要查看在哪个文件上调用 unrar 命令,需要确定哪个文件是文件集中的第一个文件。
以下是一些示例文件名,其中 - 自然 - 只有第一组应该匹配:
yes.rar
yes.part1.rar
yes.part01.rar
yes.part001.rar
no.part2.rar
no.part02.rar
no.part002.rar
no.part011.rar
使用兼容 PCRE 的正则表达式的一种(有限)方法是:
.*(?:(?<!part\d\d\d|part\d\d|\d)\.rar|\.part0*1\.rar)
然而,当我在 Rejax 测试它时,这在 Ruby 中不起作用。
您将如何编写一个 Ruby 兼容 正则表达式来仅匹配一组 RAR 文件中的第一个文件?
【问题讨论】:
-
我以为后续的rar文件有扩展名r01、r02、r03等等。
-
是的,有两种命名方案是这个问题的根源。您要么拥有 .rar、.r01 等,要么拥有 part01.rar、part02.rar 等。