⼀⾏Python代码过滤标点符号等特殊字符
很多时候我们需要过滤掉标点符号等特殊字符,⽹上虽然有⼀堆的⽅法,但是都没有到⼀个⾮常满意的,有些过滤不了中⽂的标点符号,有些过滤不了英⽂的标点符号,有些过滤不全。
最后通过查看正则表达式⽂档,发现⼀个⾼效的办法,⼀⾏代码就能搞定:
def replace_all_blank(value):
"""
去除value中的所有⾮字母内容,包括标点符号、空格、换⾏、下划线等
:param value: 需要处理的内容
:return: 返回处理后的内容
"""
# \W 表⽰匹配⾮数字字母下划线
result = re.sub('\W+', '', value).replace("_", '')
print(result)
return result
其中⽤到了 Python 的 re 模块, re 模块⾥⾯包含了所有的正则表达式的应⽤。代码⾥⾯有⼏个点:
\W
测试⼀下:
replace_all_blank("Powe, on;the 2333, 。哈哈!!看看可以吗?⼀⾏代码就可以了!^_^")
输出结果:
Poweonthe2333哈哈看看可以吗⼀⾏代码就可以了
⼀⾏代码搞定!Perfect!
最后推荐⼤家官⽹ re 模块的正则表达式⽂档地址:python 正则表达式 空格
知识点扩展:
python过滤中英⽂标点符号
import re
# 过滤不了\\ \ 中⽂()还有————
r1 = u'[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~]+'#⽤户也可以在此进⾏⾃定义过滤字符
# 者中规则也过滤不完全
r2 = "[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*()]+"
# \\\可以过滤掉反向单杠和双杠,/可以过滤掉正向单杠和双杠,第⼀个中括号⾥放的是英⽂符号,第⼆个中括号⾥放的是中⽂符号,第⼆个中括号前不能少|,否则过滤不完全r3 = "[.!//_,$&%^*()<>+\"'?@#-|:~{}]+|[——!\\\\,。=?、:“”‘'《》【】¥……()]+"
# 去掉括号和括号内的所有内容
r4 = "\\【.*?】+|\\《.*?》+|\\#.*?#+|[.!/_,$&%^*()<>+""'?@|:~{}#]+|[——!\\\,。=?、:“”‘'¥……()《》【】]"
text = "\崔芸,\\我爱=+你!【我//""们】~————结/婚'吧::!这.!!_#??()个‘'“”¥$主|意()不错......!"
print(re.sub(r1, , '', text))
总结
以上所述是⼩编给⼤家介绍的⼀⾏代码Python过滤标点符号等特殊字符,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
如果你觉得本⽂对你有帮助,欢迎转载,烦请注明出处,谢谢!