溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用python提取字符串的中英文

發(fā)布時間:2022-02-28 15:25:15 來源:億速云 閱讀:274 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“怎么使用python提取字符串的中英文”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“怎么使用python提取字符串的中英文”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

一. re中的sub函數(shù)

使用Python 的re模塊,re模塊提供了re.sub用于替換字符串中的匹配項。

re.sub(pattern, repl, string, count=0)

參數(shù)說明:

  • pattern:正則重的模式字符串

  • repl:被拿來替換的字符串

  • string:要被用于替換的原始字符串

  • count:模式匹配后替換的最大次數(shù),省略則默認(rèn)為0,表示替換所有的匹配

1.1 提取中文

可以這樣想:我們可以通過將不是中文的字符替換為空不就可以了

例如

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-9,。]", "", str)
print(str)
輸出:helloHworld

1.3 提取數(shù)字

import re
str = "重123出江湖hello的地H方。。的,world"
str = re.sub("[A-Za-zu4e00-u9fa5,。]", "", str)
print(str)
輸出:123

二. re中的findall函數(shù)

在字符串中找到正則表達(dá)式所匹配的所有子串,并返回一個列表,如果沒有找到匹配的,則返回空列表。

語法格式為:

findall(string[, pos[, endpos]])

參數(shù):

  • string : 待匹配的字符串。

  • pos : 可選參數(shù),指定字符串的起始位置,默認(rèn)為 0。

  • endpos :可選參數(shù),指定字符串的結(jié)束位置,默認(rèn)為字符串的長度。 查找字符串中的所有數(shù)字:

擴(kuò)展:正則中有match 和 search ,它們是是匹配一次,findall

匹配所有,具體了解可以到菜鳥教程查看

2.2 提取英文

通俗寫法

import string#提供a-z的小寫字母
dd = "神的孩子hello在H唱歌,world"
#準(zhǔn)備英文字符
temp=""
letters=string.ascii_lowercase#包含a-z的小寫字母
for word in dd:#for循環(huán)取出單個詞
    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注意這個數(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á)式,生成一個正則表達(dá)式( Pattern )對象,供其他函數(shù)使用。

語法格式為:

re.compile(pattern[, flags])

參數(shù):

pattern : 一個字符串形式的正則表達(dá)式

flags : 可選,表示匹配模式,比如忽略大小寫,多行模式等,具體參數(shù)為:

  • re.I 忽略大小寫

  • re.L 表示特殊字符集 w, W, , B, s, S 依賴于當(dāng)前環(huán)境

  • re.M 多行模式

  • re.S即為 . 并且包括換行符在內(nèi)的任意字符(. 不包括換行符)

  • re.U 表示特殊字符集 w, W, , B, d, D, s,S 依賴于 Unicode 字符屬性數(shù)據(jù)庫

  • re.X 為了增加可讀性,忽略空格和 # 后面的注釋

讀到這里,這篇“怎么使用python提取字符串的中英文”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI