1. look_ahead or look_after:
i) 当且仅当某类字符串之前符合某条件时,才把该字符串替换为另一类字符串。
如:当“$51%r" 前为 |, -, % 或者-*时,把其替换为a51%r.
re.sub((?<=.\||.-|-\*|.\$)\$51%r, a51%r)
注意: look_ahead里的模式要求,模式匹配的字符串必须是固定宽度的。比如上例都是2个字符。必须用”.-"和“.\|",而不能仅仅用”-“和"\|",因为”-\*"占了两个字符,所以其他的也都必须两个字符。
2. 保留搜索模式的某部分不改变,记录下来,留给替换用字符串使用。
ii) 比如上例中的”51“,实际上可能会是”35“, ”55“等,我要把他们记录下来,并且用在替换字符串里。即,匹配字符串里是”$51"那么替换字符串就是“a51",如果匹配字符串里是”$35",那么替换字符串里就是“a35”。