我必须编写一个函数,当给定一个字符串时,它会找到子串“ not”和“ bad”。如果“不好”之后是“不好”,则将整个“不” ...“不好”子字符串替换为“好”。例如:“这顿晚餐还不错!”产量:这顿晚餐很好!我尝试过:
def not_bad(s):
sub1='not'
sub2='bad'
if s.find(sub1) < s.find(sub2):
s = s[0:int(s.find(sub1))]
s= s + 'good'
return s
else:
return s
但是它最后没有产生感叹号。
您可以在这里使用re
。
import re
s='This dinner is not that bad!'
re.sub(r'not \w+ bad','good',s)
# 'This dinner is good!'
[\w+
-匹配任何单词字符(等于[a-zA-Z0-9_]
)