日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

一文掌握Python正則表達式_python

作者:宋小童 ? 更新時間: 2022-07-30 編程語言

正則表達式,又稱規則表達式(Regular Expression),是使用單個字符串來描述、匹配某個句法規則的字符串,常被用來檢索、替換那些符合某個模式(規則)的文本。最初的正則表達式出現于理論計算機科學的自動控制理論和形式化語言理論中。

安裝 Python 解釋器/anaconda。

安裝好 jupyter lab。

re 模塊的使用

匹配方法的使用

re.match 嘗試從字符串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回 none。

# 導入 re 模塊 
import re
print(re.match('www', 'www.huawei.com').span()) # 在起始位置匹配
print(re.match('com', 'www.huawei.com')) # 不在起始位置匹配

輸出: (0, 3)

None

re.search 掃描整個字符串并返回第一個成功的匹配。

import re 
print(re.search('www', 'www.huawei.com').span()) # 在起始位置匹配 
print(re.search('com', 'www.huawei.com').span()) # 不在起始位置匹配

? 輸出: (0, 3)
? ? ? ? (11, 14)

compile 方法的使用

re.compile 函數用于編譯正則表達式,生成一個正則表達式( Pattern )對象,供 match() 和 search() 這兩個函數使用。

pattern = re.compile(r'\d+') # 用于匹配至少一個數字 
n = pattern.match('one12twothree34four') # 查找頭部,沒有匹配
print(n) # 從'e'的位置開始匹配,沒有匹配
m = pattern.search('one12twothree34four')
print(m)
print(m.group())

? ? 輸出: None?
?? ? ? ? ? ?12

re 模塊其他方法的使用

re.sub 用于替換字符串中的匹配項: 
phone = "2021-0101-000 # 這是一個電話號碼" 
# 刪除字符串中的 Python 注釋 
num = re.sub(r'#.*$', "", phone) 
print("電話號碼是: ", num) # 刪除非數字(-)的字符串 
num = re.sub(r'\D', "", phone) 
print("電話號碼是 : ", num) 

輸出: 
電話號碼是: 2021-0101-000 
電話號碼是 : 20210101000

正則表達式基礎

匹配數字

使用正則表達式來匹配數字:

# 匹配文本中的所有數字 
str_ = "996.ICU 指工作 996、生病 ICU,也就是工作從早上 9 點上班到晚上 9 點下班,每周工作 6 天, 生病了就住進 ICU" 
num1 = re.findall(r'\d+', str_) # 使用\d 匹配數字,+表示匹配多次
print(num1)
num2 = re.findall(r'[0-9]{1,3}', str_) # 正則表達式不唯一,可以使用[]指定匹配元素的范圍 {}指定次數 
print(num2)

?輸出: ['996', '996', '9', '9', '6']
? ? ? ?['996', '996', '9', '9', '6']

匹配字符

使用\w 可以匹配數字字母下劃線:

匹配符號

# 匹配文本中的所有符號 
s6 = re.findall(r'\W+', str_) 
print(s6)

原文鏈接:https://juejin.cn/post/7104482926334574622

欄目分類
最近更新