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

潘儿er 2024-06-29 09:05:02 阅读 92

Python|字符串去除与保留部分内容(数字、中文、英文、标点、空格等)

去掉数字

去掉中文

去掉英文

去掉标点

同时去掉中英文标点

去掉中文标点

去掉英文标点

去掉空格

保留内容

整理使用Python去除字符串中的数字、中文、英文等,主要方法是使用基于正则化的re库。其他方法后面再补充进来~

去掉数字

\d \s \w分别表示数字,空格,数字和字母,\大写字母 则表示它们的补集,如:\S表示非数字

import re

case = "你好,world!123,,"

out = re.sub('[\d]', '', case) # [0-9]

print(out)

你好,world!,,

re.sub()方法用于替换字符串中的匹配项

[\d]是一个正则表达式,\d表示数字,也可直接用0-9,若去掉空格则用\s

''是要替换的内容,是空字符串,相当于把匹配到的内容删除掉

去掉中文

import re

case = '你好,world!123,,'

out = re.sub('[\u4e00-\u9fa5]','',case)

print(out)

,world!123,,

\u4e00-\u9fa5是汉字的范围,这个是用Unicode表示的

去掉英文

import re

case = '你好,World!123,,'

out = re.sub('[a-zA-Z]','',case)

print(out)

a-z代表小写字母,A-Z代表大写字母

如果想要去掉小写字母和数字可用 out = re.sub('[a-zA-Z]','',case)

想要去掉啥,就在中括号里连着写对应的字符就可以了

去掉标点

同时去掉中英文标点

import re

case = '你好,World! 123,,[]【】-'

out = re.sub(r'[^\w\s]','',case)

print(out)

你好World 123

字符”r“的意思是表示忽略后面的转义字符,这样简化了后面正则表达式里每遇到一个转义字符还得挨个转义的麻烦

去掉中文标点

常见的中文标点有

!?。"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘'‛“”„‟…‧﹏.

调用zhon包的zhon.hanzi.punctuation函数即可得到这些中文标点

import re

from zhon.hanzi import punctuation

case = '你好,World! 。123,,[]【】-'

out = re.sub('[{}]'.format(punctuation),'',case)

print(out)

你好World 123,,[]-

去掉英文标点

string.punctuation包含所有英文标点符号

import string

import re

case = '你好,World! 。123,,[]【】-'

out = re.sub('[{}]'.format(string.punctuation),"",case)

print(out)

你好,World! 。123【】

去掉空格

import re

case = '你好,World! 。123,,[]【】-'

out = re.sub('[\s]',"",case)

print(out)

你好,World!。123,,[]【】-

保留内容

可以去掉补集,来实现保留,如果只保留数字,那么就去掉除数字以外的其他所有字符,可以合理利用起来~

import re

case = '你好,World! 。123,,[]【】-'

out = re.sub('[^0-9]',"",case)

print(out)

123

符号“^”表示补集,[^0-9]表示匹配除了0-9以外的所有字符

字符串删除和保留还有很多方法,后面有时间再补充啦~



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。