如果文本包含给定的单词(例如:'mama'),我想替换所有文本。我使用了以下代码:
import re
text1 = 'I love mama so much'
result = re.sub(r"\bmama\b",'Nice', text1)
print (result)
其结果是:“我非常爱尼斯”,但是我希望它只是“不错”。
我该怎么做?谢谢。
答案 0 :(得分:1)
如果您不是专门寻找正则表达式解决方案,则可以这样做(我假设它不包含“妈妈”,您想返回原始短语吗?):
result = 'Nice' if 'mama' in text1 else text1
答案 1 :(得分:0)
这就是re.sub的作用。如果要替换整个字符串(使用正则表达式),请执行
text1 = 'I love mama so much'
if re.search(r' mama ', text1):
text1 = 'Nice'
答案 2 :(得分:0)
您可以将通配符字符串包装在通配符中。
result = re.sub(r".*\bmama\b.*",'Nice', text1)
。代表任何字符,*代表字符左侧0+个字符。
答案 3 :(得分:0)
如果您希望结果为“ Nice”,
result = 'Nice'
如果表达式中必须包含“ Nice”,则添加一个if语句
if 'mama' in text1:
result = 'Nice';
答案 4 :(得分:0)
您需要使用
import re
text1 = 'I love mama so much'
result = 'Nice' if re.search(r"\bmama\b", text1) else text1
print(result)
'Nice' if re.search(r"\bmama\b", text1) else text1
行表示,如果mama
中的整个单词都与text1
进行正则表达式匹配,则result
应该等于Nice
,否则应等于text1
。
请注意,re.search
会在字符串中的任何位置搜索匹配项,而re.match
只会在字符串的开头查找匹配项。
答案 5 :(得分:0)
这是基本情况
您可以按以下方式使用此代码
import re
text1 = 'I love mama so much'
result = re.sub(r"m..a",'Nice', text1)
print(result)
它可以在基本情况下为您提供帮助。