根据给定的输入:


  我可以做得更好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/

10-11 10:45