使用正则表达式从字符串中删除字符

时间:2017-07-23 15:12:10

标签: python text-mining

给定一个字符串数组,其中包含字母数字字符,但也包含必须删除的标点符号。例如,字符串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:]

1 个答案:

答案 0 :(得分:3)

如果您只想从字符串中删除非字母数字字符,则只需使用re.sub即可:

>>> re.sub('\W', '', '0-001')
'0001'

注意,\W将匹配任何非Unicode字符的字符。这与\w相反。对于ASCII字符串,它等同于[^a-zA-Z0-9_]