|
|
发表于 2018-7-26 19:16:12
|
显示全部楼层
本楼为最佳答案
p = re.compile('x*')
p.sub('-','abxd')
'-a-b-d-'
-----------------------------------------------------
上面是代码
首先是传入正则表达式'x*’构建了一个对象p,
然后以'x*'作为匹配式来匹配 abxd 这个字符串,如果匹配到内容就替换为 -
'x*' 可以匹配到的 内容为 '' 和 x 这两个
(这个时候你要先明白我之前说的
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。)的意思。
对abxd进行匹配。
1。a不满足匹配式,但a前面的 '' 满足,首先返回 '' 得到 [''] (这时候替换成了 -a )
2。b不满足匹配式,但b前面的 '' 满足,继续返回 '' 得到 ['',''] (加1步这时候替换成了 -a-b)
3。x满足匹配式,继续返回得到 ['','','x'] (加上前两步替换撑了-a-b-)
4。d不满足匹配式,但因为前面已经匹配到了x所以直接匹配最后又一个 '' 这样就得到了['','','x',''] 最后就变成了-a-b-d-
如果这样都还不明白,你可以去下一个pycharm或者eclipse断点查看执行顺序和执行结果 |
|