擅长:python、mysql、java
<p>我知道这可能不太方便,因为结果的元组性质。但我认为这个<code>findall</code>找到了您需要的:</p>
<pre><code>re.findall(r'((?<!\s)[A-Z]([^A-Z]|(?<=\s)[A-Z])*)', s)
## returns [('Thisis', 's'), ('Atest', 't'), ('Forch', 'h'), ('Eck,', ','), ('Match Ingwith', 'h'), ('Position.', '.')]
</code></pre>
<p>这可用于以下列表理解,以给出所需的输出:</p>
^{pr2}$
<p>下面是一个使用<code>split</code>的黑客:</p>
<pre><code>re.split(r'((?<!\s)[A-Z]([^A-Z]|(?<=\s)[A-Z])*)', s)[1::3]
## returns ['Thisis', 'Atest', 'Forch', 'Eck,', 'Match Ingwith', 'Position.']
</code></pre>