Python正则过滤特殊字符及乱码符怎么写,python特殊字符,问题:有上万个文件,其中


问题:有上万个文件,其中很多的文件名包含有特殊的字符(确切的说是乱码字符),想写个python脚本来过滤掉,只保留正常的文字(包括字母、数字和汉字)
首先想到的是使用正则来匹配,但是正则不是很懂,希望大神帮忙提示下,谢谢啦
乱码字符比如:

2W4mhTO?!t6X tX]错3窢塠朞?飙l?I汿?瓓?m:?识3I?霜???豚壥冂騏渖?慮玍0?w?N騃V?,腳?赿?Q?鸊ε`S栳舅4Um瞘S?U{岁匭陈ybIPIh蟷(U剦缳h滑猈留+&HR1錔碢s??Z邎遣?Zx趑U.w軎蝜锥e躸Y5z瓄埵涩?涨(<|I勀)??]t}  8?'鬖'抭??z?Ak栗醏胤?珇?g?5q顛J+乀?:pq陻謩BA$窳??+;?攉憴kAF?仇藅肆凶鬤~?闵楍曚H颴 €隔C 摶┦?K褡輈j?鹬嘙? Y肠颀爏? %y嫿3牏?瓎e?瞟蓐鯲[妉灓€紜Z鸧旬墺asqp騚Q|?痘麱檎../mZe耪m??噡輍絙]宠s琗詬禈鈞2S:陜??椣:_尙l譸氠彋氪?6棣?播9赲?UK蛌嬨zg璕}2?鑧嵉藴;抒库kT7bc饓%p?鸃恫╤丛℡梯耽O^躹AyKI?m瀾▁跮滁u李'+煰鰰cM?竧堷傭媇SQ}走n-扉8I鈴淕夨?m猨+揠跶?"広`sh鳩x

这只是我随便列举的,只要能过滤掉非正常的字符就行

這裡面沒有一個是正確的文字, 是解碼(decoding)問題. 比如原來是ascii, 結果用utf-8來解碼, 或者用ISO-Latin-1, 自然就成了亂碼了.

========

既然你更新了問題, 我也更新下答案.

寫個loop, 把所有文字都掃一邊, 然後用hex(ord(VARIABLE))拼起來, 看是不是在range裡面.

當然了, 無論怎麼做, 看起來都是很愚蠢的.

Reference:
Chinese UTF-8 Range

Unicode Howto

Unicode In Python, Completely Demystified

编橙之家文章,

评论关闭