python常用的正則表達(dá)式及作用
Python常用正則表達(dá)式及作用
正則表達(dá)式是處理字符串的強(qiáng)大工具,Python通過re模塊提供正則表達(dá)式支持:
基本匹配模式
匹配數(shù)字
\d:匹配任意數(shù)字,等價(jià)于[0-9]\D:匹配任意非數(shù)字,等價(jià)于[^0-9]- 示例:
r'\d+'匹配一個(gè)或多個(gè)連續(xù)數(shù)字
匹配字母和數(shù)字
\w:匹配字母、數(shù)字或下劃線,等價(jià)于[a-zA-Z0-9_]\W:匹配非字母、數(shù)字、下劃線,等價(jià)于[^a-zA-Z0-9_]
匹配空白字符
\s:匹配任意空白字符(空格、制表符、換行等)\S:匹配任意非空白字符
匹配任意字符
.:匹配除換行符外的任意單個(gè)字符
常用正則表達(dá)式示例
匹配郵箱地址
r'[\w\.-]+@[\w\.-]+\.\w+'
匹配URL
r'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+'匹配IP地址
r'\b(?:\d{1,3}\.){3}\d{1,3}\b'匹配中文
r'[\u4e00-\u9fa5]'
匹配日期(YYYY-MM-DD格式)
r'\d{4}-\d{1,2}-\d{1,2}'匹配手機(jī)號(hào)碼(中國(guó)大陸)
r'1[3-9]\d{9}'匹配HTML標(biāo)簽
r'<[^>]+>'
匹配身份證號(hào)(18位)
r'[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]'
常用量詞
*:匹配前一個(gè)字符0次或多次+:匹配前一個(gè)字符1次或多次?:匹配前一個(gè)字符0次或1次{n}:匹配前一個(gè)字符恰好n次{n,}:匹配前一個(gè)字符至少n次{n,m}:匹配前一個(gè)字符n到m次
邊界匹配
^:匹配字符串開頭$:匹配字符串結(jié)尾\b:匹配單詞邊界\B:匹配非單詞邊界
分組和捕獲
():創(chuàng)建捕獲組(?:):創(chuàng)建非捕獲組(?P<name>):命名捕獲組
常用re模塊方法
re.match():從字符串開頭匹配re.search():搜索整個(gè)字符串re.findall():返回所有匹配結(jié)果re.finditer():返回匹配結(jié)果的迭代器re.sub():替換匹配的字符串re.split():根據(jù)模式分割字符串
示例代碼
import re
# 查找所有數(shù)字
text = "我有3個(gè)蘋果和5個(gè)橙子"
numbers = re.findall(r'\d+', text) # ['3', '5']
# 驗(yàn)證郵箱格式
email = "test@example.com"
if re.match(r'[\w\.-]+@[\w\.-]+\.\w+', email):
print("郵箱格式正確")
# 提取URL
html = '<a rel="external nofollow" >鏈接</a>'
url = re.search(r'href="(https?://[^" rel="external nofollow" ]+)"', html).group(1)到此這篇關(guān)于python常用的正則表達(dá)式及作用的文章就介紹到這了,更多相關(guān)python正則表達(dá)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows平臺(tái)配置Python環(huán)境的入門教學(xué)
本文詳細(xì)介紹了Windows系統(tǒng)下Python環(huán)境的配置要點(diǎn),主要內(nèi)容包括?Python安裝結(jié)構(gòu)解析以及Python?Launcher(py.exe)的多版本管理功能,讀完這篇,你就能把Windows打造成一個(gè)順手的Python開發(fā)環(huán)境2026-06-06
Python編譯結(jié)果之code對(duì)象與pyc文件詳解
今天小編就為大家分享一篇對(duì)Python編譯結(jié)果之code對(duì)象與pyc文件的詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-10-10
conda安裝tensorflow和conda常用命令小結(jié)
這篇文章主要介紹了conda安裝tensorflow和conda常用命令小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
解決TensorFlow訓(xùn)練內(nèi)存不斷增長(zhǎng),進(jìn)程被殺死問題
今天小編就為大家分享一篇解決TensorFlow訓(xùn)練內(nèi)存不斷增長(zhǎng),進(jìn)程被殺死問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python版SQLite數(shù)據(jù)庫從入門到綜合運(yùn)用案例(附詳細(xì)演示)
SQLite是一款輕量級(jí)嵌入式數(shù)據(jù)庫,具有零配置、跨平臺(tái)、文件式存儲(chǔ)等特點(diǎn),適合移動(dòng)端和嵌入式應(yīng)用開發(fā),這篇文章主要介紹了Python版SQLite數(shù)據(jù)庫從入門到綜合運(yùn)用案例的相關(guān)資料,需要的朋友可以參考下2026-01-01
python使用sqlite3時(shí)游標(biāo)使用方法
這篇文章主要為大家詳細(xì)介紹了python使用sqlite3時(shí)游標(biāo)的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03

