擅长:python、mysql、java
<p>你可以用</p>
<pre><code>r'\b(?!^)[A-Z]\w*(?:\s+(?:a(?:nd?)?|the|to|[io]n|from|with|of|for|[A-Z]\w*))+\b'
</code></pre>
<p>参见<a href="https://regex101.com/r/FFcAPB/1" rel="nofollow noreferrer">regex demo</a>。你知道吗</p>
<p><strong>细节</strong></p>
<ul>
<li><code>\b</code>-单词边界</li>
<li><code>(?!^)</code>-一个否定的前瞻:这里没有字符串位置的开始</li>
<li><code>[A-Z]</code>-大写字母</li>
<li><code>\w*</code>-0+字母、数字或<code>_</code>s</li>
<li><code>(?:\s+(?:a(?:nd?)?|the|to|[io]n|from|with|of|for|[A-Z]\w*))+</code>-非捕获组中模式的零次或多次重复:
<ul>
<li><code>\s+</code>-1+空格</li>
<li><code>(?:a(?:nd?)?|the|to|[io]n|from|with|of|for|[A-Z]\w*)</code>-任何
<ul>
<li><code>a(?:nd?)?</code>-<code>a</code>,<code>an</code>,<code>and</code></li>
<li><code>|the|to|</code>-或<code>the</code>或<code>to</code>或</li>
<li><code>[io]n</code>-<code>in</code>或<code>on</code></li>
<li><code>|from|with|of|for|</code>-或<code>from</code>或<code>with</code>或<code>of</code>或<code>for</code></li>
<li><code>[A-Z]\w*</code>-大写字母和0+个字母、数字或<code>_</code>s</li>
</ul></li>
</ul></li>
<li><code>\b</code>-单词边界</li>
</ul>