去除数字,特殊字符,只保留汉字
import re
s = '1123*#$ 中abc国'
str = re.sub('[a-zA-Z0-9'!"#$%&'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\]^_`{|}~s]+', "", s)
# 去除不可见字符
str = re.sub('[ 01 02 03 04 05 06 07x08x09x0ax0bx0cx0dx0ex0fx10x11x12x13x14x15x16x17x18x19x1a]+', '', x)
print(str)
# 结果为:中国
去除特殊字符,只保留汉子,字母、数字
import re
string = "123我123456abcdefgABCVDFF?/ ,。,.:;:''';'''[]{}()()《》"
print(string)
123我123456abcdefgABCVDFF?/ ,。,.:;:''';'''[]{}()()《》
sub_str = re.sub(u"([^u4e00-u9fa5u0030-u0039u0041-u005au0061-u007a])","",string)
print(sub_str)
123我123456abcdefgABCVDFF
正则表达式说明
| 函数 | 说明 |
| sub(pattern,repl,string) | 把字符串中的所有匹配表达式pattern中的地方替换成repl |
| [^**] | 表示不匹配此字符集中的任何一个字符 |
| u4e00-u9fa5 | 汉字的unicode范围 |
| u0030-u0039 | 数字的unicode范围 |
| u0041-u005a | 大写字母unicode范围 |
| u0061-u007a | 小写字母unicode范围 |
| uAC00-uD7AF | 韩文的unicode范围 |
| u3040-u31FF | 日文的unicode范围 |
更多关于python正则过滤字母、数字及特殊字符方法请查看下面相关链接



