擅长:python、mysql、java
<p>这将对您的文本执行以下操作:</p>
<pre><code>text = "Dr. Harrison bought bargain.co.uk for 2.5 million pounds, i.e. he "\
"paid a lot for it. Did he mind? John Smith, Esq. thinks he didn't. "\
"Nevertheless, this isn't true... Well, with a probability of .9 it "\
"isn't."
import re
pat = ('(?<!Dr)(?<!Esq)\. +(?=[A-Z])')
print re.sub(pat,'.\n',text)
</code></pre>
<p>结果</p>
^{pr2}$
<p>但在人类写作这样复杂的事情中,不可能有一个永远不会失败的regex模式。<br/>
请注意,例如,我不得不用否定的lookbehind断言来排除<strong>Dr.</strong>的情况(我对<strong>Esq.</strong>也做了同样的处理,尽管它在你的文本中并不代表一个问题,因为它后面跟的不是大写字母的<strong>thinks</strong>)<br/>
我认为不可能事先将所有类似的情况都放在regex模式中,总有一些未经考虑的情况会在某一天或另一天发生。在</p>
<p>但是这段代码完成了很多期望的工作。我觉得还不错。在</p>