擅长:python、mysql、java
<p>这应该起作用:</p>
<pre><code>^(?=(.)(.)).*\2\1$
</code></pre>
<p>注意,我对前两个字符使用了lookahead,而不是简单地匹配它们。这是因为您还希望匹配短于4个字符的字符串。所以我们不想这么早就匹配前两个字符。你知道吗</p>
<p>我将前两个字符捕获到第1组和第2组中,然后匹配中间的所有字符(<code>.*</code>),然后匹配第2组中匹配的所有字符,然后匹配第1组中匹配的所有字符(<code>\1\2</code>)。你知道吗</p>
<p>爪哇语:</p>
<pre><code>input.matches("^(?=(.)(.)).*\\2\\1$")
</code></pre>
<p>Python:</p>
<pre><code>re.match(r"^(?=(.)(.)).*\2\1$", input)
</code></pre>