从 Python 中的字符串中剥离非字母数字字符
从字符串中剥离非字母数字字符包括删除除字母、数字和下划线。虽然 PHP 存在解决方案,但它们可能不符合 Python 原则。
一种有效的方法是定义一个匹配非字母数字字符 (W_) 的正则表达式,并将其替换为空字符串。将 re.sub() 函数与已编译的正则表达式模式一起使用:
<code class="python">import re, string pattern = re.compile('[\W_]+') # Compiled regular expression string.printable = string.printable.replace(pattern, '') # Substitute non-alphanumeric characters with empty string</code>
其他方法包括使用列表理解来过滤掉非字母数字字符或使用 filter( 中的 str.isalnum() 方法):
<code class="python">''.join(ch for ch in string if ch.isalnum()) filter(str.isalnum, string)</code>
比较基准测试表明,使用编译的正则表达式的 re.sub() 方法产生了最佳性能:
$ python -m timeit -s \ "import re, string; pattern = re.compile('[\W_]+')" \ "pattern.sub('', string.printable)" 100000 loops, best of 3: 11.2 usec per loop
以上是如何有效地从 Python 字符串中删除非字母数字字符?的详细内容。更多信息请关注PHP中文网其他相关文章!