python re.sub()函数添加其他字符-e-垃圾字符

时间:2018-12-20 19:48:36

标签: python

我在熊猫3中使用re包,并试图re.sub()制作图案。我的代码在

import re

test = "xyz/b2117fe1e"
obfuscate_pattern = r'/[^g-z]+[0-9]' 
val1 = re.sub(obfuscate_pattern,'',test)
print(test)
print(val1)

我的问题是,在运行代码时,我在xyx之后还有一个字母。

输入xyz的结果应为xyz/b2117fe1e。但是,对于相同的输入xyze,我得到的是e(最后一个xyz/b2117fe1e是附加的)。

我无法诊断问题,您有何建议?

1 个答案:

答案 0 :(得分:0)

/[^g-z]+[0-9]将匹配g之后并包括最后一位z和/之间) >。在您的测试用例中,您有一个跟在最后一位数字的字母 ,因此在执行替换后该字母仍然保留。

如果您删除[0-9],则您的模式将删除g之后z/之间的所有内容,包括数字(因为它们不是't g-z