使用re.sub,我试图查找并替换字母数字子字符串(例如run1)的所有实例,但数字为高阶数字(例如run12)的子字符串实例除外
我原以为lookbehind (?<![0-9])
会阻止“run12”匹配,但我不熟悉它的用法,可能使用不正确
import re
mystring = '/mypath/run1/run12_run1_file.txt'
mynewstring = re.sub(r'run1(?<![0-9])',r'run2',mystring)
print mynewstring
理想情况下,这将返回:
/mypath/run2/run12_run2_file.txt
相反,它不匹配任何内容并返回:
/mypath/run1/run12_run1_file.txt
有什么建议吗
您应该使用负向前看而不是负向后看,因为您试图避免匹配后跟数字的
run1
:相关问题 更多 >
编程相关推荐