我需要删除(即,什么都不替换)中间数字两侧的一系列文件名中的所有内容。我可以分两步完成,但我想一步完成。
两步:
filename = "NRC_401653_XL3213456321_NRCE_KR.pdf"
front_gone = re.sub(r'(\w{3})_(\d{6})_', '', filename)
both_gone = re.sub(r'_NRCE_KR.pdf', '', front_gone)
这将导致只剩下 XL3213456321,这正是我所需要的。我想一步完成。
请您参考如下方法:
尝试:
import re
filename = "NRC_401653_XL3213456321_NRCE_KR.pdf"
print re.sub(r"\w{3}_\d+_(\w+)_NRCE_KR\.pdf", r"\1", filename)
输出:
XL3213456321
(\w+) 将提取匹配组(编号 1)。然后你想将整个字符串替换为中间代码,这就是为什么你只需要传递 \1 作为替换。
