我需要在中间的数字两侧的一系列文件名中删除(即,替换为空)。我可以分两步完成,但我想在一个步骤中完成。
两个步骤:
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
,这就是我所需要的。我想一步到位。
答案 0 :(得分:1)
<强>尝试:强>
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 作为替代。