擅长:python、mysql、java
<p>上面的答案会很好地工作,并且对于模棱两可的收缩可能更好(尽管我认为没有那么多模棱两可的情况)。我会用一些更容易阅读和维护的东西:</p>
<pre><code>import re
def decontracted(phrase):
# specific
phrase = re.sub(r"won\'t", "will not", phrase)
phrase = re.sub(r"can\'t", "can not", phrase)
# general
phrase = re.sub(r"n\'t", " not", phrase)
phrase = re.sub(r"\'re", " are", phrase)
phrase = re.sub(r"\'s", " is", phrase)
phrase = re.sub(r"\'d", " would", phrase)
phrase = re.sub(r"\'ll", " will", phrase)
phrase = re.sub(r"\'t", " not", phrase)
phrase = re.sub(r"\'ve", " have", phrase)
phrase = re.sub(r"\'m", " am", phrase)
return phrase
test = "Hey I'm Yann, how're you and how's it going ? That's interesting: I'd love to hear more about it."
print(decontracted(test))
# Hey I am Yann, how are you and how is it going ? That is interesting: I would love to hear more about it.
</code></pre>
<p>可能有一些我没想到的缺点。</p>
<p>从<a href="https://stackoverflow.com/questions/43018030/replace-appostrophe-short-words-in-python/47091370#47091370">my other answer</a>重新发布</p>