去除數字,特殊字符,只保留漢字
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)
# 結果為:中國
去除特殊字符,只保留漢子,字母、數字
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范圍 |
