擅长:python、mysql、java
<p>你不需要积极的前瞻来匹配前两个大写的单词</p>
<p>在您的模式中,这个部分<code>(?=\s[A-Z])</code>可以在您第一次断言它时省略,然后直接匹配它</p>
<hr/>
<p>您可以在不使用捕获组的情况下匹配前两个单词,并在右侧断言空白边界<code>(?!\S)</code></p>
<pre><code>^[A-Z][a-z]+[^\S\r\n][A-Z][a-z]+(?!\S)
</code></pre>
<p><strong>解释</strong></p>
<ul>
<li><code>^</code>字符串的开头</li>
<li><code>[A-Z][a-z]+</code>匹配字符a-Z和1+小写字符a-Z</li>
<li><code>[^\S\r\n]</code>匹配除换行符之外的空白字符,因为<code>\s</code>也可以匹配换行符,并且您希望匹配行首的两个连续大写单词</li>
<li><code>[A-Z][a-z]+</code>匹配字符a-Z和1+小写字符a-Z</li>
<li><code>(?!\S)</code>在右侧断言空白边界</li>
</ul>
<p><a href="https://regex101.com/r/mNCCBk/1" rel="nofollow noreferrer">Regex demo</a></p>
<p><strong>注意<code>[A-Z][a-z]+</code>只匹配字符a-z。要匹配单词字符,可以使用<code>\w</code>而不是只使用<code>[a-z]</code></p>