正则表达式:使用“string”标识文件名,但如果有.filepart扩展名则排除

时间:2018-03-21 17:35:30

标签: regex

我需要搜索目录以识别文件名中包含字符串的特定文件。但我想用“.filepart”扩展名排除部分加载的文件。

由于工具限制,必须通过Regex完成。

文件名可以是多种格式,我们必须从传递给Regex的“文件标识符”字符串中识别它们。

我在SO和其他网站上看过一些非常好的文章,但我很难确定正确的语法。

我在regex101.com上保存了一个页面,以提供我想要实现的更详细的解释。 “FILETYPE”可以被认为是我们传入正则表达式的字符串。

https://regex101.com/r/zTrbyX/4

谢谢, ķ

1 个答案:

答案 0 :(得分:0)

您的原始正则表达式是:

.*FILETYPE.*\.[[:alnum:]]*(?!filepart)

将给出与以下相同的结果:

.*FILETYPE.*

相反,您可以使用以下正则表达式(类似于评论中的CAustin解决方案):

.*FILETYPE.*(?<!filepart)$

这将匹配以.*FILETYPE.*开头且不以filetpart结尾的每一行。这里$表示该行的结尾。在regex101.com中,您需要激活m的标记$才能被识别为EOL。