擅长:python、mysql、java
<p>您完全可以将表达式组合成一个正则表达式:</p>
<pre><code>expr = re.compile('(^[^A-Z]$)|(^[^a-z]$)|(^[^0-9]$)|(^[^~!@#$%^&*()]$)|(^.{0,7}$)')
if expr.search('a99@999B'):
print('Invalid')
else:
print('Valid')
</code></pre>
<p>请注意,表达式中的布尔值是使用公式<code>a & b = !a | !b</code>组合的。所以基本上,这是在寻找:</p>
<pre><code>if(no_lowercase or no_uppercase or no_digit or no_symbol or 7chars_or_fewer):
#it's invalid
else:
#it's valid
</code></pre>