我有一个带有括号、逗号等字符的大字符串。我想去掉所有这些字符但保留空格。我应该如何做?目前我正在使用:
strippedList = re.sub(r'\W+', '', origList)
我有一个带有括号、逗号等字符的大字符串。我想去掉所有这些字符但保留空格。我应该如何做?目前我正在使用:
strippedList = re.sub(r'\W+', '', origList)
re.sub(r'([^\s\w]|_)+', '', origList)
|_
是做什么用的? - CKM^\w
中的排除。 - Ignacio Vazquez-Abrams一个稍微更快的实现:
import re
pattern = re.compile('([^\s\w]|_)+')
strippedList = pattern.sub('', value)
"".join([c for c in origList if c in string.letters or c in string.whitespace])
对于使用join()
函数可能会有些奇怪,但我认为这是转换字符列表为字符串的Python惯用方法。
>>> s = ''.join(chr(i) for i in range(256)) # all possible bytes
>>> re.sub(r'[^\s\w_]+','',s) # What will remain
'\t\n\x0b\x0c\r 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'