擅长:python、mysql、java
<p>如果控制输入,最好的方法是在一个句子的末尾使用两个空格(就像人们应该,IMHO),然后在<code>'. '</code>上使用split,这样就不会碰到Dr.or</p>
<p>如果你不控制输入。。。我不确定这是否真的是Python,但有一种方法可以做到:使用占位符来标识所有要保存句点的位置。下面,我假设<code>'XYZ'</code>从未出现在我的文本中。你可以随心所欲地把它变得复杂,越复杂越好(不太可能那样做)。在</p>
<pre><code>sentence = "Hello, Dr. Brown. Nice to meet you. I'm Bob."
targets = ['Dr.', 'i.e.', 'etc.']
replacements = [t.replace('.', placeholder) for t in targets]
# replacements now looks like: ['DrXYZ', 'iXYZeXYZ', 'etcXYZ']
for i in range(len(targets)):
sentence = sentence.replace(targets[i], replacements[i])
# sentence now looks like: "Hello, DrXYZ Brown. Nice to meet you. I'm Bob."
output = sentence.split('. ')
# output now looks like: ['Hello, DrXYZ Brown', ' Nice to meet you', " I'm Bob."]
output = [o.replace(placeholder, '.') for o in output]
print(output)
>>> ['Hello, Dr. Brown', ' Nice to meet you', " I'm Bob."]
</code></pre>