python 过滤文本中的标点符号

网上搜到的大都太复杂,最后找到一个用正则表达式实现的:

import re
s = "string. With. Punctuation?"
# 如果空白符也需要过滤,使用 r'[^\w]'
s = re.sub(r'[^\w\s]','',s)

支持中文和中文标点。

原理很简单:在正则表达式中,\w 匹配字母或数字或下划线或汉字(具体与字符集有关),^\w 表示相反匹配。

详情:https://stackoverflow.com/questions/265960/best-way-to-strip-punctuation-from-a-string-in-python