【发布时间】:2019-04-02 15:49:06
【问题描述】:
使用 re.sub,我正在尝试查找并替换字母数字子字符串的所有实例(例如 run1),除了数字是更高阶数的子字符串实例(例如 run12)。
我认为后向 (?<![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_怎么样 -
这不会取代
run1/,但 blhsing 的回答有所帮助......我应该使用前瞻而不是后瞻。