You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则匹配移除列表中锁定Excel文件失效,请求排查正则表达式错误

问题分析与修正

核心错误点

  1. match()方法的局限性:re.match()仅从字符串起始位置匹配,而锁定文件的~$可能出现在路径中间(比如C:\Work\~$Counts.xlsx)或开头(比如~$ad_;),你的正则要求匹配\~$(反斜杠+~+$),只有当该组合出现在字符串最开头时才会被匹配,完全不符合需求。
  2. 正则匹配范围错误:你写的r'\\~\$'仅匹配反斜杠+~+$的组合,但锁定文件的核心特征是存在~$序列(无论前面是否有反斜杠),比如~$ad_;直接以~$开头,你的正则完全覆盖不到这种情况。

修正后的代码

import re

folder = ['C:\Work\~$Counts.xlsx', '~$ad_;', 'dslkjf$dl;jf', '$lkajd~f', 'C:\Work\Counts.xlsx']

# 匹配任意位置的~$特征序列
pattern = re.compile(r'~\$')

# 用search()扫描整个字符串,存在匹配则过滤
filelist = [i for i in folder if not pattern.search(i)]

print(filelist)

说明

  • 改用re.search():它会遍历整个字符串,只要发现~$就返回匹配结果,能过滤所有含锁定文件特征的条目。
  • 简化正则为r'~\$':直接锁定~$这个核心特征,覆盖所有锁定文件的命名情况。

运行后输出预期的4个元素:

['dslkjf$dl;jf', '$lkajd~f', 'C:\Work\Counts.xlsx']

内容的提问来源于stack exchange,提问作者User_zyp9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 11:06:20