正则表达式 - 去掉乱码字符/提取字符串中的中文字符/提取字符串中的大小写字母 - Python代码
生活随笔
收集整理的這篇文章主要介紹了
正则表达式 - 去掉乱码字符/提取字符串中的中文字符/提取字符串中的大小写字母 - Python代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
1.亂碼符號種類較少,用replace()
2.亂碼字符種類較多,用re.sub()
3.提取字符串中的中文字符
4.提取字符串中的中文字符和數字
5.提取其他
數據清洗的時候一大煩惱就是數據中總有各種亂碼字符,比如!@#¥%……&——+*(){}:“》《?|【】‘;/。,、-=
去掉這些很簡單:
1.亂碼符號種類較少,用replace()
如果只是很少類型的亂碼符號,可以使用replace來替換掉,由于我們只是針對字符串中個別字符進行替換,因此使用str.replace("#","")即可;
#只有一類亂碼字符串 df['name'] = df['name'].str.replace("#","")#連續多個字符一起替換 df['name'] = df['name'].str.replace("#","").str.replace("&","").str.replace("*","")2.亂碼字符種類較多,用re.sub()
import re string = "北京大學beijing985大學@#¥……&{}*@$%)..+_)( " string_code = re.sub(u"([^\u4e00-\u9fa5\u0030-\u0039\u0041-\u005a\u0061-\u007a])","",string) print(string_code )#輸出:北京大學beijing985大學這種方法的清洗,我們使用的其實是正則表達式,上述方法是提取了字符串中的中英文和數字,當然你也可以直提取中文,不同字符對應的?unicode 范圍如下所示:
| 函數 | 說明 |
| sub(pattern,repl,string) | 把字符串中的所有匹配表達式pattern中的地方替換成repl |
| [^**] | 表示不匹配此字符集中的任何一個字符 |
| \u4e00-\u9fa5 | 漢字的unicode范圍 |
| \u0030-\u0039 | 數字的unicode范圍 |
| \u0041-\u005a | 大寫字母unicode范圍 |
| \u0061-\u007a | 小寫字母unicode范圍 |
3.提取字符串中的中文字符
import re string = "北京大學beijing985大學@#¥……&{}*@$%)..+_)( "#提取中文字符 string_code = re.sub(u"([^\u4e00-\u9fa5])","",string) print(string_code )#輸出:北京大學大學4.提取字符串中的中文字符和數字
import re string = "北京大學beijing985大學@#¥……&{}*@$%)..+_)( "#提取中文字符和數字 string_code = re.sub(u"([^\u4e00-\u9fa5\u0030-\u0039])","",string) print(string_code )#輸出:北京大學985大學5.提取其他
至于提取其他字符,可以根據正則表達式的?unicode 范圍,并參照上述三個例子敲代碼。
總結
以上是生活随笔為你收集整理的正则表达式 - 去掉乱码字符/提取字符串中的中文字符/提取字符串中的大小写字母 - Python代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python各种岗位薪资_python编
- 下一篇: python语言语句块标记是_Pytho