擅长:python、mysql、java
<p><code>\w</code>将匹配字母<em>和数字</em>。应该使用<code>[a-zA-Z]</code>只包含字母。你知道吗</p>
<pre><code>def get_name(text):
return re.findall("([a-zA-Z]+)",text)[0]
</code></pre>
<p>如果仍要匹配所有特殊字符和空格,可以使用以下选项:</p>
<pre><code>def get_name(text):
return re.findall("([a-zA-Z,'\s]+)",text)[0]
get_name("Silverbul , 'let' 201.58")
</code></pre>
<p>输出:</p>
<pre><code>"Silverbul , 'let' "
</code></pre>
<p>不幸的是,您不能使用<code>[\w\D]</code>,因为它将使用<code>OR</code>比较,而不是<code>AND</code>。实际上,如果以下任何一项为真,您将说match:</p>
<ol>
<li>任何字母、数字或下划线</li>
<li>任何非数字字符</li>
</ol>