我有一个功能,我想用“访问者”代替人名来匿名化文本。
为此,我编写了以下函数:
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。但是,他们在这里说的是如何找到这样的单词,而不是如何替换它。我很难找到并替换它。
谁可以帮助我?
答案 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))