去除数字,特殊字符,只保留汉字






1


2


3


4


5


6


7


8




​import​ ​ ​ ​re​



​s ​ ​​ ​=​ ​ ​ ​'1123*#$ 中abc国'​


​str​ ​ ​ ​=​ ​ ​ ​re.sub(​ ​​ ​'[a-zA-Z0-9'​ ​​ ​!​ ​​ ​"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "​ ​​ ​", s)​


​# 去除不可见字符​


​str​ ​ ​ ​=​ ​ ​ ​re.sub(​ ​​ ​'[\001\002\003\004\005\006\007\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a]+'​ ​​ ​, '', x)​


​print​ ​​ ​(​ ​​ ​str​ ​​ ​)​


​# 结果为:中国​



去除特殊字符,只保留汉子,字母、数字






1


2


3


4


5


6


7




​import​ ​ ​ ​re​


​string ​ ​​ ​=​ ​ ​ ​"123我123456abcdefgABCVDFF?/ ,。,.:;:''';'''[]{}()()《》"​


​print​ ​​ ​(string)​


​123​ ​​ ​我​ ​​ ​123456abcdefgABCVDFF​ ​​ ​?​ ​​ ​/​ ​ ​ ​,。,.:;:​ ​​ ​''';'''​ ​​ ​[]{}()()《》​


​sub_str ​ ​​ ​=​ ​ ​ ​re.sub(u​ ​​ ​"([^\u4e00-\u9fa5\u0030-\u0039\u0041-\u005a\u0061-\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范围