python中re的常见用法总结(update)

来源:互联网 发布:mysql排序函数 编辑:程序博客网 时间:2024/06/06 17:51

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>来表示这段匹配的内容。

原创粉丝点击