最初我用
re.sub(r'\b({0})\b'.format(T[i]), 'TARGET', j, flags=re.IGNORECASE)
但有几句话处理得不好:
T[i] = '#dexter'
finally starting the 5th season of #dexter. see ya later, weekend!
以及
T[i] = 'a$ap rocky'
AHHH! My mom said yes for me to go the A$AP Rocky concert!! Nov 8th we out! #EXCITE
对于这两个实例,T[i]没有被“TARGET”替换为出现在第一个目标开头的标签符号和第二个目标中的美元符号。我也尝试过r'\S*({0})\S*'
,但仍然无法修复第二个实例。你能帮我指定相关的正则表达式吗?谢谢!你知道吗
#dexter
的问题\b
匹配单词边界,即序列两端与\w+
匹配的空字符串。但是,#
与\w+
不匹配,因此单词边界位于#
的右侧,而不是左侧。一种可能的解决方案是使用负lookaround而不是单词边界:a$ap rocky
的问题$
字符在正则表达式中有特殊的含义。在将输入字符串插入模式之前,应该对其进行预处理。^{把两者结合起来
相关问题 更多 >
编程相关推荐