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”。