<p>如何检查文本中是否存在字符串,并替换它?我有这样的代码:</p>
<pre><code>import re
emoticon = [':)',':-)',':-(',':D']
def emoticonNormalize(text,loop=2):
text = re.sub(r'\s(\S)\s(\S)\s(\S)\s', r' \1\2\3 ', text)
text = re.sub(r'\s(\S)\s(\S)\s', r' \1\2 ', text)
text = re.sub(r'\s(\S)\s(\S)', r' \1\2', text)
print(text)
texta = 'I dont like politic : - ( but still read about it : - ) _ because its funny . : D and unpredictable : )'
print(texta)
texted = emoticonNormalize(texta,1)
</code></pre>
<p>代码结果:</p>
^{pr2}$
<p>因此,<code>texta</code>中的字符串包含实际上是一个<strong>图释的字符,但<strong>它仍然由空格分隔</strong>。我正在尝试使用regex组合看起来像表情符号。在</p>
<p>我想先找到可疑的表情符号。然后检查它是否在<code>emoticon</code>列表中,如果它在列表中,则用combineone替换旧模式(仍有空格)。在</p>
<p>我很困惑如何使用<code>re.sub</code>,<strong>预期结果</strong>是<code>I dont like politic :-( but still read about it :-) _ because its funny . :D and unpredictable :)</code></p>
<p>正确的方法是什么?在</p>
<pre><code>re.sub(r'(?<=\:)( )','',texta)
Out[72]: 'I dont like politic :- ( but still read about it :- ) _ because its funny . :D and unpredictable :)'
</code></pre>