首页  >  文章  >  后端开发  >  如何有效地从 Python 字符串中删除非字母数字字符?

如何有效地从 Python 字符串中删除非字母数字字符?

Barbara Streisand
Barbara Streisand原创
2024-11-05 22:20:02789浏览

How Can I Efficiently Remove Non-Alphanumeric Characters from Strings in Python?

从 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn