仅在单独出现时替换单词

时间:2019-06-14 10:16:32

标签: python regex replace

我有一个功能,我想用“访问者”代替人名来匿名化文本。

为此,我编写了以下函数:

def replaceName(text, name):
    newText = text.replace(name, 'visitor')
    return str(newText)

我使用以下方法应用它:

all_transcripts['msgText'] = all_transcripts.apply(lambda x: replaceName(x['msgText'], x['nameGuest']), axis=1)

但是,如果它是另一个单词的一部分,它也会替换名称。因此,我只想替换该词本身站立的实例。我已经尝试过将其作为" "+name+" "来使用,但是,如果名称在句子的开头或结尾,则无法使用。

此外,我已经考虑过:Python regular expression match whole word。但是,他们在这里说的是如何找到这样的单词,而不是如何替换它。我很难找到并替换它。

谁可以帮助我?

1 个答案:

答案 0 :(得分:2)

    var longString = "My Customer likes the Shop and likes the atmosphere"
      var text = new fabric.Text(longString, {
        height: object.HEIGHT["#text"]*1/pix_optimize,
        width: object.WIDTH["#text"]*1/pix_optimize,
        fontFamily: object.LFONTNAME['#text'],
        fontSize: parseInt(object.FONTSIZE['#text'])*2,
        fontStyle: font_Style,
        fill: tr_fontColor,
        textBackgroundColor: tr_BackgroundColor,
        underline: boolean_underline,
        linethrough: boolean_lineThrough,
        textAlign: 'left',
        lineHeight: object.ALIGN["#text"]+1-0.99,
        lockRotation: true,
        // wordWidth: 0,
      });

输出:

import re

text = "Mark this isMark example Mark."

print (re.sub(r"\bMark\b", "visitor", text))