Python正则表达式 - 剥离开始和结束并保持中间不变

时间:2016-04-30 17:17:35

标签: python regex

我需要在中间的数字两侧的一系列文件名中删除(即,替换为空)。我可以分两步完成,但我想在一个步骤中完成。

两个步骤:

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,这就是我所需要的。我想一步到位。

1 个答案:

答案 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 作为替代。