我有一个正则表达式,搜索包含'.00.'或'.11.'如下的字符串:
.*\.(00|11)\..*
Run Code Online (Sandbox Code Playgroud)
我想做的是用'X00X'或替换所有与模式匹配的事件'X11X'.例如,字符串'.00..0..11.'将导致'X00X.0.X11X'.
我正在研究Python re.sub方法,并且不确定如何有效地执行此操作.返回的匹配对象仅在第一次出现时匹配,因此无法正常工作.有什么建议?我应该只使用字符串替换此任务吗?谢谢.
Tim*_*ker 18
re.sub()(Python 2和Python 3的文档)确实替换了它找到的所有匹配项,但是你的使用.*可能导致正则表达式匹配太多(甚至其他类似的事件.00.).简单地说:
In [2]: re.sub(r"\.(00|11)\.", r"X\1X", ".00..0..11.")
Out[2]: 'X00X.0.X11X'
Run Code Online (Sandbox Code Playgroud)
请注意,模式不能重叠:
In [3]: re.sub(r"\.(00|11)\.", r"X\1X", ".00.11.")
Out[3]: 'X00X11.'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29361 次 |
| 最近记录: |