python中re的常見用法總結(update)

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

                                  

         re.sub((?<=.\||.-|-\*|.\$)\$(?P<name>51|35|21)%r, a\g<name>%r)

            (?P<name>...)用來匹配模式,並且將該模式匹配的內容記錄下來,用變量“name”來表示(這個name可以更改),然後在使用\g<name>來表示這段匹配的內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章