Используя 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
Есть предложения?