【发布时间】:2016-04-15 03:04:58
【问题描述】:
我的大学要求我为他提供一个正则表达式,该正则表达式仅在测试字符串以.rar 或 .part1.rar 或 part01.rar 或 part001.rar (等等)结尾时匹配。
应该匹配:
foo.part1.rar
xyz.part01.rar
存档.rar
part3_is_the_best.rar
不应匹配:
foo.r61
bar.part03.rar
test.sfv
我立即想出了正则表达式\.(part0*1\.)?rar$。 But this does match for bar.part03.rar.
接下来我尝试在断言后面添加一个否定的外观:.*(?<!part\d*)\.(part\0*1\.)?rar$ 这也不起作用,因为环视断言需要固定宽度。
然后我尝试使用正则表达式条件。但这也没有用。
所以我的问题是:这甚至可以通过使用纯正则表达式来解决吗?
答案应该包含指向 regex101.com 的链接以提供有效的解决方案,或者解释为什么它不能使用纯正则表达式来工作。
【问题讨论】:
-
一切都可以使用正则表达式来解决。
-
正则表达式就像暴力一样——如果它不能解决你的问题,你就没有使用足够的! (至少 PCRE)
标签: regex