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






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范围