擅长:python、mysql、java
<p>你可以反过来做,而不是有一个名单的伤残者,它是更好的有一个名单的有效。然后检查字符串的每个字符:</p>
<pre><code>valids = ['a', 'b', 'c', 'd']
for letter in foo:
if (not letter in valids):
print("Not a real word!")
</code></pre>
<p>使用regex更容易,因为列出所有valids选项更容易:</p>
<pre><code>import re
if (not re.match("^[a-zA-Z_ ]*$", foo)):
print("Not a real word!")
</code></pre>
<p>regex <code>^[a-zA-Z_ ]*$</code>表示只在<code>[a-zA-Z_ ]</code>中包含符号的单词</p>
<p>如果要保留无效列表,请使用否定正则表达式:</p>
<pre><code>if (re.match("[^0-9@]", foo)):
print("Not a real word!")
</code></pre>
<p>其中<code>[^0-9@]</code>表示除括号之间定义的字符以外的任何字符</p>