從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中文網其他相關文章!