3 回答

TA貢獻1827條經驗 獲得超4個贊
這是一個正則表達式,用于匹配不是字母或數字的字符串:
[^A-Za-z0-9]+
以下是執行正則表達式替換的Python命令:
re.sub('[^A-Za-z0-9]+', '', mystring)

TA貢獻1848條經驗 獲得超10個贊
在看到這個之后,我有興趣通過查找在最短的時間內執行哪些來擴展所提供的答案,所以我通過timeit對兩個示例字符串檢查了一些建議的答案:
string1 = 'Special $#! characters spaces 888323'
string2 = 'how much for the maple syrup? $20.99? That s ricidulous!!!'
例1
'.join(e for e in string if e.isalnum())
string1 - 結果:10.7061979771
string2 - 結果:7.78372597694
例2
import re
re.sub('[^A-Za-z0-9]+', '', string)
string1 - 結果:7.10785102844
string2 - 結果:4.12814903259
例3
import re
re.sub('\W+','', string)
string1 - 結果:3.11899876595
string2 - 結果:2.78014397621
以上結果是平均值的最低返回結果的乘積: repeat(3, 2000000)
實施例3可以比實施例1快3倍。
添加回答
舉報