Python:剥离除空格和字母数字之外的所有内容

j00*_*ner 31 python

我有一个带括号和逗号的大字符串等.我想剥离所有这些字符但保留间距.我怎样才能做到这一点.截至目前我正在使用

strippedList = re.sub(r'\W+', '', origList)
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 39

re.sub(r'([^\s\w]|_)+', '', origList)
Run Code Online (Sandbox Code Playgroud)


pat*_*sik 9

实施速度更快一点:

import re

pattern = re.compile('([^\s\w]|_)+')
strippedList = pattern.sub('', value)
Run Code Online (Sandbox Code Playgroud)


unw*_*ind 7

基于正则表达式的版本可能更快(特别是如果您切换到使用已编译的表达式),但为了清楚起见,我喜欢这样:

"".join([c for c in origList if c in string.letters or c in string.whitespace])
Run Code Online (Sandbox Code Playgroud)

这是一个有点怪异与join()电话,但我认为这是用于转换的字符列表转换为字符串漂亮地道的Python.