Python,正则表达式,替换包含单词的文本

时间:2018-07-18 09:37:55

标签: python regex

如果文本包含给定的单词(例如:'mama'),我想替换所有文本。我使用了以下代码:

import re 
text1 = 'I love mama so much'
result = re.sub(r"\bmama\b",'Nice', text1)
print (result)

其结果是:“我非常爱尼斯”,但是我希望它只是“不错”。

我该怎么做?谢谢。

6 个答案:

答案 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)

请参见Python demo online

'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)

它可以在基本情况下为您提供帮助。