擅长:python、mysql、java
<p>我经常提倡regexp的替代方法,因为我认为它经常被用作寻找问题的解决方案,但是在这种情况下,我认为它可能是合适的。在</p>
<pre><code>import re
pat = re.compile("^[0x#$qi]*$")
my_string = 'qwer123asd!@#$%^'
if pat.match(my_string):
print("Only predefined symbols!")
</code></pre>
<p>只要确保<code>"]"</code>是预定义的符号之一,它就是方括号内的第一个符号。在</p>
<p>与euromino的set方法进行快速比较后发现,使用您在问题中使用的字符串,这个速度快了3倍。<code>pat</code>和{<cd3>}的创建被排除在计时之外,因此这是“重复使用”场景。如果将它们包括在内,差别较小,但regexp仍然更快。在</p>