擅长:python、mysql、java
<p><code>$</code>受分组的影响。您的正则表达式被解释为<code>(^a{1,2})|(x$)</code>,它匹配“字符串开头的一个或两个”或“字符串结尾的一个x”。如果希望<code>|</code>仅应用于as和xs,则需要对它们进行分组:</p>
<pre><code>pt = '^(a{1,2}|x)$'
</code></pre>
<p>或者,如果不想捕获组,请使用非捕获组:</p>
<pre><code>pt = '^(?:a{1,2}|x)$'
</code></pre>
<p>编辑:我不确定我是否理解您要匹配的内容,但也许可以尝试:</p>
<pre><code>pt = '^(a{1,2}x?|x)$"
</code></pre>