当前位置: 首页 > 面试题库 >

正则表达式以匹配python中设置的rar存档文件中的第一个文件

暨弘懿
2023-03-14
问题内容

我需要解压缩目录中的所有文件,为此,我需要找到集合中的第一个文件。我目前正在使用一堆if语句和循环来执行此操作。我可以使用正则表达式来做到这一点吗?

这是我需要匹配的文件列表:

yes.rar
yes.part1.rar
yes.part01.rar
yes.part001.rar
yes.r01
yes.r001

这些不应该匹配:

no.part2.rar
no.part02.rar
no.part002.rar
no.part011.rar
no.r002
no.r02

我在此线程上找到了一个类似的正则表达式,但是Python似乎不支持可变长度查找。单行正则表达式会很复杂,但是我会很好地记录下来,这不是问题。这只是您要解决的问题之一。

在此先感谢大家。

:)


问题答案:

无需为此使用后视断言。由于您从字符串的开头开始查找,因此您可以使用先行查找和后备查找来完成所有操作。这应该工作:

^((?!\.part(?!0*1\.rar$)\d+\.rar$).)*\.(?:rar|r?0*1)$

要按照您的要求捕获文件名的第一部分,可以执行以下操作:

^((?:(?!\.part\d+\.rar$).)*)\.(?:(?:part0*1\.)?rar|r?0*1)$


 类似资料:
  • 本文向大家介绍中文正则表达式匹配问题之正则表达式中文匹配使用方法,包括了中文正则表达式匹配问题之正则表达式中文匹配使用方法的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要讲如何使用正则匹配中文字符,中文正则表达式的匹配规则不像其他正则规则一样容易记住,下面一起看看这个中文正则表达式是怎么样的。 \w匹配的仅仅是中文,数字,字母,对于国人来讲,仅匹配中文时常会用到,见下 匹配中文字符的正则表达

  • 问题内容: 我实现了如下所示的Pattern类:http : //www.java2s.com/Code/Java/GWT/ImplementjavautilregexPatternwithJavascriptRegExpobject.htm 我想使用以下正则表达式来匹配我的String中的网址: 不幸的是,Java编译器当然无法解析该字符串,因为它不使用有效的转义序列(因为从技术上讲,以上是Ja

  • 问题内容: 在使用正则表达式时,我使用RegexBuddy。我从其库中复制了正则表达式以匹配URL。我在RegexBuddy中成功测试。但是,当我将其复制为Java 样式并将其粘贴到Java代码中时,它将无法正常工作。以下类打印: 有人知道我在做什么错吗? 问题答案: 请尝试以下正则表达式字符串。你的测试可能以区分大小写的方式进行。我添加了小写字母Alpha以及正确的字符串开头占位符。 这也适用:

  • 我的输入只能有两个值或。我可以使用什么正则表达式来确保这两个单词中的任何一个都已提交?

  • 有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。

  • 问题内容: 我想在特定字符串中匹配正斜杠或反斜杠,例如: 1. 2. 3. 4. 在给定的字符串中,不应匹配最后一个记录,因为它不包含或。 我在用什么 这仅适用于正斜杠。我不知道如何为两个斜杠写正则表达式(条件)。 问题答案: 您要匹配的“字符”为: 先为字符串复制反斜杠,然后再为正则表达式复制。 当您需要在也使用反斜杠转义字符串的语言中使用反斜杠时,这可能是最讨厌的正则表达式。 Java编译器会