擅长:python、mysql、java
<p>你可以重复A-Z部分,后跟一个点1+次,然后在末尾匹配一个可选的A-Z来匹配A.B</p>
<pre><code>^[a-zA-Z]+,\s(?:[A-Z]\.)+[A-Z]?$
</code></pre>
<ul>
<li><code>^</code>字符串开头</li>
<li><code>[a-zA-Z]+</code>匹配1+a-zA-Z</li>
<li><code>,\s</code>匹配逗号和空格字符</li>
<li><code>(?:</code><a href="https://www.rexegg.com/regex-disambiguation.html#noncap" rel="nofollow noreferrer">Non capturing group</a>
<ul>
<li><code>[A-Z]\.</code>匹配A-Z和一个点</li>
</ul></li>
<li><code>)+</code>关闭非捕获组并重复1+次以匹配<code>A.</code>或<code>A.B.</code></li>
<li><code>[A-Z]?</code>匹配可选的A-Z</li>
<li><code>$</code>字符串结尾</li>
</ul>
<p><a href="https://regex101.com/r/uLHr3l/1" rel="nofollow noreferrer">Regex demo</a></p>
<p>或者在开头使用单词边界<code>\b</code>,在结尾使用非空白<code>(?!\S)</code>:</p>
<pre><code>\b[a-zA-Z]+,\s(?:[A-Z]\.)+[A-Z]?(?!\S)
</code></pre>
<p><a href="https://regex101.com/r/knyKy8/1" rel="nofollow noreferrer">Regex demo</a></p>