擅长:python、mysql、java
<p>您可以使用负前瞻排除匹配以下连字符和数字<code>(?!-\d)</code></p>
<p>如果它应该从字符串的开头开始,那么可以使用锚点<code>^</code></p>
<p>注意,您可以将<code>[\d]</code>写为<code>\d</code></p>
<pre><code>^([a-zA-Z]{2}\d{4})(?!-\d)(L\d|Transit|T$)?
</code></pre>
<p>这个图案看起来像</p>
<ul>
<li><code>^</code>字符串的开头</li>
<li><code>(</code>捕获<strong>第1组</strong>
<ul>
<li><code>[a-zA-Z]{2}\d{4}</code>匹配2次a-zA-Z和4位数字</li>
</ul></li>
<li><code>)</code>闭合群</li>
<li><code>(?!-\d)</code>负向前看,断言直接向右的不是<code>-</code>和数字</li>
<li><code>(L\d|Transit|T$)?</code>可选捕获<strong>组2</strong></li>
</ul>
<p><a href="https://regex101.com/r/zodEor/1" rel="nofollow noreferrer">Regex demo</a></p>