找回密码
 会员注册
查看: 20|回复: 0

Python字符串去除与保留(数字、中文、英文、标点符号、空格)

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
72015
发表于 2024-9-7 13:12:34 | 显示全部楼层 |阅读模式
Python|字符串去除与保留部分内容(数字、中文、英文、标点、空格等)去掉数字去掉中文去掉英文去掉标点  同时去掉中英文标点  去掉中文标点  去掉英文标点去掉空格保留内容整理使用Python去除字符串中的数字、中文、英文等,主要方法是使用基于正则化的re库。其他方法后面再补充进来~去掉数字\d\s\w分别表示数字,空格,数字和字母,\大写字母则表示它们的补集,如:\S表示非数字importrecase="你好,world!123,,"out=re.sub('[\d]','',case)#[0-9]print(out)1234'运行运行你好,world!,,1re.sub()方法用于替换字符串中的匹配项[\d]是一个正则表达式,\d表示数字,也可直接用0-9,若去掉空格则用\s''是要替换的内容,是空字符串,相当于把匹配到的内容删除掉去掉中文importrecase='你好,world!123,,'out=re.sub('[\u4e00-\u9fa5]','',case)print(out)1234'运行运行,world!123,,1\u4e00-\u9fa5是汉字的范围,这个是用Unicode表示的去掉英文importrecase='你好,World!123,,'out=re.sub('[a-zA-Z]','',case)print(out)1234'运行运行a-z代表小写字母,A-Z代表大写字母如果想要去掉小写字母和数字可用out=re.sub('[a-zA-Z]','',case)想要去掉啥,就在中括号里连着写对应的字符就可以了去掉标点同时去掉中英文标点importrecase='你好,World!123,,[]【】-'out=re.sub(r'[^\w\s]','',case)print(out)1234'运行运行你好World1231字符”r“的意思是表示忽略后面的转义字符,这样简化了后面正则表达式里每遇到一个转义字符还得挨个转义的麻烦去掉中文标点常见的中文标点有!?。"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘'‛“”„‟…‧﹏.1调用zhon包的zhon.hanzi.punctuation函数即可得到这些中文标点importrefromzhon.hanziimportpunctuationcase='你好,World!。123,,[]【】-'out=re.sub('[{}]'.format(punctuation),'',case)print(out)12345你好World123,,[]-1去掉英文标点string.punctuation包含所有英文标点符号importstringimportrecase='你好,World!。123,,[]【】-'out=re.sub('[{}]'.format(string.punctuation),"",case)print(out)12345'运行运行你好,World!。123【】1去掉空格importrecase='你好,World!。123,,[]【】-'out=re.sub('[\s]',"",case)print(out)1234'运行运行你好,World!。123,,[]【】-1保留内容可以去掉补集,来实现保留,如果只保留数字,那么就去掉除数字以外的其他所有字符,可以合理利用起来~importrecase='你好,World!。123,,[]【】-'out=re.sub('[^0-9]',"",case)print(out)1234'运行运行1231'运行运行符号“^”表示补集,[^0-9]表示匹配除了0-9以外的所有字符字符串删除和保留还有很多方法,后面有时间再补充啦~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 22:45 , Processed in 0.682825 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表