如何使用python提取字符串的中英文(正則判斷)
前言
提取中英文是我們?cè)谧鰯?shù)據(jù)處理時(shí)候經(jīng)常使用的,最高效的做法就是通過(guò)正則判斷了,下面是我寫(xiě)的筆記,希望對(duì)你有用
一. re中的sub函數(shù)
使用Python 的re模塊,re模塊提供了re.sub用于替換字符串中的匹配項(xiàng)。
re.sub(pattern, repl, string, count=0)
參數(shù)說(shuō)明:
- pattern:正則重的模式字符串
- repl:被拿來(lái)替換的字符串
- string:要被用于替換的原始字符串
- count:模式匹配后替換的最大次數(shù),省略則默認(rèn)為0,表示替換所有的匹配
1.1 提取中文
可以這樣想:我們可以通過(guò)將不是中文的字符替換為空不就可以了
例如
import re str = "重出江湖hello的地H方。。的,world" str = re.sub("[A-Za-z0-9\,\。]", "", str) print(str) 輸出:神的孩子在唱歌
1.2 提取英文
import re str = "重123出江湖hello的地H方。。的,world" str = re.sub("[\u4e00-\u9fa5\0-9\,\。]", "", str) print(str) 輸出:helloHworld
1.3 提取數(shù)字
import re str = "重123出江湖hello的地H方。。的,world" str = re.sub("[A-Za-z\u4e00-\u9fa5\,\。]", "", str) print(str) 輸出:123
二. re中的findall函數(shù)
在字符串中找到正則表達(dá)式所匹配的所有子串,并返回一個(gè)列表,如果沒(méi)有找到匹配的,則返回空列表。
語(yǔ)法格式為:
findall(string[, pos[, endpos]])
參數(shù):
- string : 待匹配的字符串。
- pos : 可選參數(shù),指定字符串的起始位置,默認(rèn)為 0。
- endpos :可選參數(shù),指定字符串的結(jié)束位置,默認(rèn)為字符串的長(zhǎng)度。 查找字符串中的所有數(shù)字:
擴(kuò)展:正則中有match 和 search ,它們是是匹配一次,findall
匹配所有,具體了解可以到菜鳥(niǎo)教程查看
2.1 提取中文
2.2 提取英文
通俗寫(xiě)法
import string#提供a-z的小寫(xiě)字母 dd = "神的孩子hello在H唱歌,world" #準(zhǔn)備英文字符 temp="" letters=string.ascii_lowercase#包含a-z的小寫(xiě)字母 for word in dd:#for循環(huán)取出單個(gè)詞 if word.lower() in letters:#判斷是否是英文 temp+=word#添加組成英文單詞 print(temp) 輸出:helloHworld
正則
#A-Za-z import re dd = "重出123江湖hello的地方的,world" result = ''.join(re.findall(r'[A-Za-z]', dd)) print(result) 輸出:helloHworld
2.3 提取數(shù)字
#0-9注意這個(gè)數(shù)字前面不能\,要不然他連,都給算上 import re dd = "神123的孩子hello在唱H歌。。,world" result = ''.join(re.findall(r'[0-9]', dd)) print(result) 輸出:123
三. re中的compile函數(shù)
compile函數(shù)用于編譯正則表達(dá)式,生成一個(gè)正則表達(dá)式( Pattern )對(duì)象,供其他函數(shù)使用。
語(yǔ)法格式為:
re.compile(pattern[, flags])
參數(shù):
pattern : 一個(gè)字符串形式的正則表達(dá)式
flags : 可選,表示匹配模式,比如忽略大小寫(xiě),多行模式等,具體參數(shù)為:
- re.I 忽略大小寫(xiě)
- re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依賴(lài)于當(dāng)前環(huán)境
- re.M 多行模式
- re.S即為 . 并且包括換行符在內(nèi)的任意字符(. 不包括換行符)
- re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s,\S 依賴(lài)于 Unicode 字符屬性數(shù)據(jù)庫(kù)
- re.X 為了增加可讀性,忽略空格和 # 后面的注釋
3.1 同時(shí)匹配中英文數(shù)字去除其他字符
總結(jié)
到此這篇關(guān)于如何使用python提取字符串中英文的文章就介紹到這了,更多相關(guān)python提取字符串中英文內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python和shell實(shí)現(xiàn)的校驗(yàn)IP地址合法性腳本分享
這篇文章主要介紹了python和shell實(shí)現(xiàn)的校驗(yàn)IP地址合法性腳本分享,每個(gè)腳本配有執(zhí)行效果圖,需要的朋友可以參考下2014-10-10對(duì)python 數(shù)據(jù)處理中的LabelEncoder 和 OneHotEncoder詳解
今天小編就為大家分享一篇對(duì)python 數(shù)據(jù)處理中的LabelEncoder 和 OneHotEncoder詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python數(shù)據(jù)庫(kù)反向生成Model最優(yōu)方案示例
這篇文章主要介紹了Python數(shù)據(jù)庫(kù)反向生成Model最優(yōu)方案的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07python 根據(jù)pid殺死相應(yīng)進(jìn)程的方法
下面小編就為大家?guī)?lái)一篇python 根據(jù)pid殺死相應(yīng)進(jìn)程的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01Python實(shí)現(xiàn)簡(jiǎn)單狀態(tài)框架的方法
這篇文章主要介紹了Python實(shí)現(xiàn)簡(jiǎn)單狀態(tài)框架的方法,涉及Python狀態(tài)框架的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03Python中內(nèi)置數(shù)據(jù)類(lèi)型list,tuple,dict,set的區(qū)別和用法
這篇文章主要給大家介紹了Python中內(nèi)置數(shù)據(jù)類(lèi)型list,tuple,dict,set的區(qū)別和用法,都是非常基礎(chǔ)的知識(shí),十分的細(xì)致全面,有需要的小伙伴可以參考下。2015-12-12python 實(shí)用工具狀態(tài)機(jī)transitions
這篇文章主要介紹了python 實(shí)用工具狀態(tài)機(jī)transitions的使用,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11基于Python開(kāi)發(fā)chrome插件的方法分析
這篇文章主要介紹了基于Python開(kāi)發(fā)chrome插件的方法,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)chrome瀏覽器插件相關(guān)操作技巧,需要的朋友可以參考下2018-07-07