3 回答

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

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
在看到這個(gè)之后,我有興趣通過查找在最短的時(shí)間內(nèi)執(zhí)行哪些來擴(kuò)展所提供的答案,所以我通過timeit對兩個(gè)示例字符串檢查了一些建議的答案:
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 - 結(jié)果:10.7061979771
string2 - 結(jié)果:7.78372597694
例2
import re
re.sub('[^A-Za-z0-9]+', '', string)
string1 - 結(jié)果:7.10785102844
string2 - 結(jié)果:4.12814903259
例3
import re
re.sub('\W+','', string)
string1 - 結(jié)果:3.11899876595
string2 - 結(jié)果:2.78014397621
以上結(jié)果是平均值的最低返回結(jié)果的乘積: repeat(3, 2000000)
實(shí)施例3可以比實(shí)施例1快3倍。
添加回答
舉報(bào)