- 此问题在此处已有答案**:
How to replace only part of the match with python re.sub(6个答案)
6天前关闭。
我的目标是使用regex和python库re替换所有后跟标点符号的"cat"示例,同时保留标点符号,这是我目前为止的方法,也是一个可重复性最低的示例:
import re
your_string = "Is this cat sleeping? Sleepy cat? Sleepy cat!"
match = re.findall(r"\bcat[/./?!]", your_string)
new_string = re.sub(r"cat","dog", match)
res_str = re.sub(r"\bcat[/./?!]", new_string, your_string, flags=re.IGNORECASE)
理想的输出应为:"这只猫在睡觉吗?瞌睡虫?瞌睡虫!"
编辑:我的尝试没有成功,因为它看起来很难。sub不能接受字符串列表
1条答案
按热度按时间deyfvvtc1#
使用lookaround〉〉
\bcat(?=[/./?!])
更改正则表达式。通过这种方式,您可以直接使用
sub
函数,如下所示。检查here演示。