<p>也许吧</p>
<pre><code>^(?!.*[a-z]{3})(?=.*[\d])(?=.*[A-Z])(?=.*[a-z]{2})(?=.*[@#$])[\w\d@#$]{6,12}$
</code></pre>
<p>那就行了。你知道吗</p>
<pre><code>(?!.*[a-z]{3})
</code></pre>
<p>表示不允许超过三个连续的小写字母。你知道吗</p>
<h3><a href="https://regex101.com/r/0H1bdA/1/" rel="nofollow noreferrer">Demo 1</a></h3>
<h3>测试</h3>
<pre><code>import re
char = 'Massas23#'
if re.search(r"^(?!.*[a-z]{3})(?=.*[\d])(?=.*[A-Z])(?=.*[a-z]{2})(?=.*[@#$])[\w\d@#$]{6,12}$", char):
print("match")
else:
print("Not Match")
</code></pre>
<hr/>
<p>如果您希望简化/修改/探索表达式,在<a href="https://regex101.com/r/0H1bdA/1/" rel="nofollow noreferrer">regex101.com</a>的右上面板中已经解释过了。如果您愿意,还可以在<a href="https://regex101.com/r/0H1bdA/1/debugger" rel="nofollow noreferrer">this link</a>中查看它如何与一些示例输入匹配。你知道吗</p>
<hr/>
<h3>正则表达式电路</h3>
<p><a href="https://jex.im/regulex/#!flags=&re=%5E(a%7Cb)*%3F%24" rel="nofollow noreferrer">jex.im</a>可视化正则表达式:</p>
<p><a href="https://i.stack.imgur.com/Gpg4E.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Gpg4E.png" alt="enter image description here"/></a></p>
<hr/>
<p>我想我们不是想匹配<code>MAsSa23#</code>,如果你想匹配的话</p>
<pre><code>^(?!.*[a-z]{3})(?=.*[\d])(?=.*[A-Z])(?=.*[a-z]{1,2})(?=.*[@#$])[\w\d@#$]{6,12}$
</code></pre>
<p>我会这么做的。你知道吗</p>
<h3><a href="https://regex101.com/r/eDLTR1/1/" rel="nofollow noreferrer">Demo 2</a></h3>