擅长:python、mysql、java
<p>您可以从character类中省略小写字符,然后正好匹配2个小写字符a-z</p>
<p>例如,可以使用<a href="https://www.rexegg.com/regex-style.html#contrast" rel="nofollow noreferrer">contrast</a>使用求反字符类来匹配非数字。你知道吗</p>
<pre><code>^(?=.{6,12}$)(?=[^\d\s]*\d)(?=[^A-Z\s]*[A-Z])(?=[^@#$\s]*[@#$])[A-Z0-9_@#$]*[a-z][A-Z0-9_@#$]*[a-z][A-Z0-9_@#$]*$
</code></pre>
<ul>
<li><code>^</code>字符串开头</li>
<li><code>(?=.{6,12}$)</code>断言6-12个字符</li>
<li><code>(?=[^\d\s]*\d)</code>断言一个数字</li>
<li><code>(?=[^A-Z\s]*[A-Z])</code>断言一个大写字符</li>
<li><code>(?=[^@#$\s]*[@#$])</code>断言一个特殊字符</li>
<li><code>[A-Z0-9_@#$]*[a-z][A-Z0-9_@#$]*[a-z][A-Z0-9_@#$]*</code>匹配2个小写a-z</li>
<li><code>$</code>字符串结尾</li>
</ul>
<p><a href="https://regex101.com/r/EpMMog/1" rel="nofollow noreferrer">Regex demo</a></p>
<p>请注意</p>
<ul>
<li><code>[\d]</code>不必在方括号之间</li>
<li><code>[\w\d@#$]</code><code>\w</code>也匹配<code>\d</code>,因此可以从character类中省略它</li>
</ul>