gpt4 book ai didi

python - 文件路径上的正则表达式以匹配不以某个单词开头的文件名

转载 作者:行者123 更新时间:2023-12-04 08:58:24 25 4
gpt4 key购买 nike

在包含具有完整路径的行的文本中,我只需要匹配 的行文件名 不以 开头'TMP' (不区分大小写)。
在下一个示例列表中,不应匹配标有“EXCLUDE”的行。

c:\folder1\TMP_file.ext----------EXCLUDE
c:\TMP_folder1\file.ext
c:\folder1\TMP_folder2\file.ext
c:\folder1/TMP_file.ext----------EXCLUDE
c:\file.ext
c:\TMP_file.ext------------------EXCLUDE
TMP_file.ext---------------------EXCLUDE
file.ext
我想出了一个简单的表达 [^\\/\r\n]+$ (接受 '\' '/' 作为目录分隔符)成功地将整个文件名与其扩展名匹配,但我不知道如何添加 (?!...)排除以“tmp”开头的匹配项。
反转表达式 tmp[^\\/\r\n]+$也将是解决方案,但我不知道如何。
我知道这个问题与其他问题类似(冒着被否决的风险......)但我没有找到将它们与这个问题联系起来的方法。

最佳答案

您可以使用

(?i)^(?!(?:.*[/\\])?TMP(?![^\W_])[^/]*$).+
regex demo ( [^/] 替换为 [^/\n] 因为正则表达式是针对单个多行字符串进行测试的)。
详情
  • ^ - 字符串开头
  • (?!(?:.*[/\\])?TMP(?![^\W_])[^/]*$) - 如果在当前位置的右侧,则匹配失败的负前瞻
  • (?:.*[/\\])? - 可选出现除换行符以外的任何 0+ 字符,然后是 /\
  • TMP(?![^\W_]) - TMP (不区分大小写)后面不跟字母或数字(可以跟在 _ 后面)
  • [^/]* - 除 / 之外的任何 0 个或更多字符
  • $ - 字符串的结尾。

  • .+ - 除换行符以外的一个或多个字符。
  • 关于python - 文件路径上的正则表达式以匹配不以某个单词开头的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63692984/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com