首页 > 解决方案 > 在 python 字符串中插入主题标签

问题描述

我尝试用一​​个优雅的解决方案在句子中的特定单词前面插入“#”(不是一个有很多“if”的大函数)。

hashwords = ['Google','Apple','Titan','Facebook']

input = 'Google,Apple, Titan and Facebook. Not Facebook@Work OpenTitan or apple.'

output = '#Google,#Apple, #Titan and #Facebook. Not Facebook@Work, OpenTitan or apple.'

我尝试过这样的事情,但我想考虑标点符号或可能成为更大单词一部分的单词:

    for elem in hashwords :
        if elem in input:
            input = input.replace(elem, '#'+elem)

任何想法?

谢谢

标签: pythonregex

解决方案


import re

hashwords = ['Google','Apple','Titan','Facebook']
input = 'Google,Apple, Titan and Facebook. Not Facebook@Work OpenTitan or apple.'

for elem in hashwords :
    input = re.sub(r'\b'+elem+r'\b(?!@)', '#'+elem, input)
print(input)

输出:

#Google,#Apple, #Titan and #Facebook. Not Facebook@Work OpenTitan or apple.

r'(?<!@)\b'+elem+r'\b(?!@)'如果你不想Apple@Titan被匹配,你可以使用。


推荐阅读