擅长:python、mysql、java
<p>我得到的最直观的解决方案是这个。本质上,您需要将<code>Dr.</code>和<code>Mr.</code>标记本身视为原子。在</p>
<pre><code>patt = r'(?:Dr\.|Mr\.|.)*?[.!?]\s?\n?'
</code></pre>
<p>它说:</p>
<blockquote>
<p>Find me the least number of <code>Mr.</code>s, <code>Dr.</code>s or any character up to a puncuation mark followed by a zero or one spaces which is followed by zero or one new lines.</p>
</blockquote>
<p>用在这个上面示例.txt(我加了一行):</p>
^{pr2}$
<p>它提供:</p>
<pre><code>{Hello there|Hello|Howdy} Dr. Munchauson you {gentleman|fine fellow}!
What {will|shall|should} we {eat|have} for lunch?
Peas by the {thousand|hundred|1000} said Dr. Munchauson; {that|is} what he said.
newline
But there are no {misters|doctors} here good sir!
Help us if there is an emergency.
newline
I am the {very last|last} sentence for this {instance|example}.
</code></pre>