網(wǎng)站首頁 編程語言 正文
一、開頭匹配
- 從字符串開頭開始匹配
- 返回匹配對(duì)象;如果找不到匹配,則為None
import re
print(re.match('飛兔小哥', '飛兔小哥教你零基礎(chǔ)學(xué)編程'))
print(re.match('學(xué)編程', '飛兔小哥教你零基礎(chǔ)學(xué)編程'))
二、全匹配
- 匹配字符串是否和給定的字符一模一樣
- 如果一模一樣才返回匹配對(duì)象,如果找不到匹配,則為None
import re
print(re.fullmatch('飛兔小哥教你零基礎(chǔ)學(xué)編程', '飛兔小哥教你零基礎(chǔ)學(xué)編程'))
print(re.fullmatch('飛兔小哥', '飛兔小哥教你零基礎(chǔ)學(xué)編程'))
三、部分匹配
- 只要在字符串中找到字符存在即可
- 找到返回匹配對(duì)象,如果找不到匹配,則為None
import re
print(re.search('autofelix', '飛兔小哥教你零基礎(chǔ)學(xué)編程'))
print(re.search('飛兔小哥', '飛兔小哥教你零基礎(chǔ)學(xué)編程'))
四、匹配替換
- 用正則表達(dá)式去匹配原始字符串,并把匹配到的內(nèi)容替換
import re
# 去掉電話號(hào)碼中的-
num = re.sub(r'\D', '', '188-1926-8053')
print(num)
# 18819268053
五、匹配替換返回?cái)?shù)量
- 用正則表達(dá)式去匹配原始字符串,并把匹配到的內(nèi)容替換
- 并且返回被替換掉的數(shù)量
import re
# 去掉電話號(hào)碼中的-
num = re.subn(r'\D', '', '188-1926-8053')
print(num)
# (18819268053, 2)
六、分割字符串
- 按照正則表達(dá)式的規(guī)則來分割字符串,并返回列表
- 可以規(guī)定分割的次數(shù)
import re
print(re.split('a*', 'hello world'))
# ['', 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '']
print(re.split('a*', 'hello world', 1))
# ['', 'hello world']
七、匹配所有
- 在字符串中匹配所有符合正則表達(dá)式的對(duì)象
- 并把這些對(duì)象通過列表list的形式返回
import re
pattern = re.compile(r'\W+')
result1 = pattern.findall('hello world!')
result2 = pattern.findall('hello world!', 0, 7)
print(result1)
# [' ', '!']
print(result2)
# [' ']
八、迭代器匹配
- 在字符串中匹配所有符合正則表達(dá)式的對(duì)象
- 并把這些對(duì)象通過迭代器的形式返回
import re
pattern = re.compile(r'\W+')
result = pattern.finditer('hello world!')
for r in result:
print(r)
九、編譯對(duì)象
- 把正則表達(dá)式編譯成Pattern對(duì)象
import re
pattern = re.compile(r'\W+')
十、修飾符
- re.I:忽略大小寫
- re.L:本地化識(shí)別匹配
- re.M:多行匹配
- re.S:使.匹配包括換行在內(nèi)的所有字符
- re.U:根據(jù)unicode字符解析字符
- re.X:給予靈活的格式以便理解
import re
content = "Cats are smarter than dogs"
print(re.search(r'DOGS', content, re.M | re.I))
原文鏈接:https://blog.51cto.com/autofelix/5190716
相關(guān)推薦
- 2023-01-28 Python多線程與同步機(jī)制淺析_python
- 2023-03-13 Android?BottomNavigationView與Fragment重建與重疊問題解決方法探索
- 2023-01-02 Flutter組件生命周期和App生命周期示例解析_Android
- 2022-07-04 C#實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換_C#教程
- 2022-09-29 React路由攔截模式及withRouter示例詳解_React
- 2022-04-18 python用plotly實(shí)現(xiàn)繪制局部放大圖_python
- 2022-11-13 ASP.NET?MVC使用Session會(huì)話保持表單狀態(tài)_實(shí)用技巧
- 2022-10-23 React路由中的redux和redux知識(shí)點(diǎn)拓展_React
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支