根据给定的输入:
我可以做得更好waaaaaaaaaaaaaaay:DDDD !!!!我对此感到非常兴奋:)))好!
期望:输出
我可以做的更好/ LNG更好:D / LNG!/ LNG我很喜欢/ LNG对此很满意:)/ LNG好的!/ LNG
---挑战:
更好vs. soooooooooo >>我们需要保持第一个不变,但缩短第二个
第二,我们需要添加标签(LNG),因为它可能对强化主观性和情感性有重要意义
----问题:错误消息“括号不平衡”
有任何想法吗?
我的代码是:
import re
lengWords = {} # a dictionary of lengthened words
def removeDuplicates(corpus):
data = (open(corpus, 'r').read()).split()
myString = " ".join(data)
for word in data:
for chr in word:
countChr = word.count(chr)
if countChr >= 3:
lengWords[word] = word+"/LNG"
lengWords[word] = re.sub(r'([A-Za-z])\1+', r'\1', lengWords[word])
lengWords[word] = re.sub(r'([\'\!\~\.\?\,\.,\),\(])\1+', r'\1', lengWords[word])
for k, v in lengWords.items():
if k == word:
re.sub(word, v, myString)
return myString
最佳答案
这不是完美的解决方案,但我现在没有时间完善它-只是想让您开始使用简单的方法:
s = "I can do waaaaaaaaaaaaay better :DDDD!!!! I am sooooooooo exicted about it :))) Good !!"
re.sub(r'(.)(\1{2,})',r'\1/LNG',s)
>> 'I can do wa/LNGy better :D/LNG!/LNG I am so/LNG exicted about it :)/LNG Good !!'
关于python - Python用字典值替换字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10787487/