给定一个字符串数组,其中包含字母数字字符,但也包含必须删除的标点符号。例如,字符串x =" 0-001"转换为x =" 0001"。
为此,我有:
punctuations = list(string.punctuation)
其中包含必须从字符串中删除的所有字符。我试图用python中的正则表达式解决这个问题,有关如何继续使用正则表达式的任何建议吗?
import string
punctuations = list(string.punctuation)
test = "0000.1111"
for i, char in enumerate(test):
if char in punctuations:
test = test[:i] + test[i+ 1:]
答案 0 :(得分:3)
如果您只想从字符串中删除非字母数字字符,则只需使用re.sub
即可:
>>> re.sub('\W', '', '0-001')
'0001'
注意,\W
将匹配任何非Unicode字符的字符。这与\w
相反。对于ASCII字符串,它等同于[^a-zA-Z0-9_]
。