<p>我有这样一段文字:</p>
<blockquote>
<p>IN THE 18th century, suicide was regard- ed, particularly by the
French, as an English disease. 'The English destroy themselves most
unaccountably,' wrote Montesquieu, and Voltaire was told that during
an East wind the English hanged themselves by the dozen. True or not,
the chaussure is now on the other foot. The suicide rate for men in
England and Wales is about 10 per 100,000 inhabitants, com- pared with
30 in France</p>
</blockquote>
<p>我想抓住这些例子:</p>
<pre><code>regard- ed
com- pared
</code></pre>
<p>我尝试了<code>r'\s[a-z].*-[a-z].*\s'</code>捕捉一个单词,然后是一个破折号和另一个单词,但这是不对的。在</p>
<p>我试过<code>r'\s[a-z].*-'</code>,它捕捉到:</p>
^{pr2}$
<p>然后我试着:<code>r'-\s[a-z].*\s'</code>它捕捉到:</p>
<pre><code>- pared with 30 in France.
</code></pre>
<p>我可以试试:</p>
<pre><code>left = re.find(r'\s[a-z].*-', text).rpartition(' ')[2]
right = re.find(r'-\s[a-z].*\s', text).partition(' ')[0]
left[:-1] + right[2:]
</code></pre>
<p>但我确信有一种单一的regex方法可以避免所有的分区混乱。那么如何用一个正则表达式捕捉所需的实例呢?(假设单词末尾的破折号总是表示所需的实例,但不希望使用空格填充的破折号,例如<code>com - pared</code>)</p>