網站首頁 編程語言 正文
一、開頭匹配
- 從字符串開頭開始匹配
- 返回匹配對象;如果找不到匹配,則為None
import re
print(re.match('飛兔小哥', '飛兔小哥教你零基礎學編程'))
print(re.match('學編程', '飛兔小哥教你零基礎學編程'))
二、全匹配
- 匹配字符串是否和給定的字符一模一樣
- 如果一模一樣才返回匹配對象,如果找不到匹配,則為None
import re
print(re.fullmatch('飛兔小哥教你零基礎學編程', '飛兔小哥教你零基礎學編程'))
print(re.fullmatch('飛兔小哥', '飛兔小哥教你零基礎學編程'))
三、部分匹配
- 只要在字符串中找到字符存在即可
- 找到返回匹配對象,如果找不到匹配,則為None
import re
print(re.search('autofelix', '飛兔小哥教你零基礎學編程'))
print(re.search('飛兔小哥', '飛兔小哥教你零基礎學編程'))
四、匹配替換
- 用正則表達式去匹配原始字符串,并把匹配到的內容替換
import re
# 去掉電話號碼中的-
num = re.sub(r'\D', '', '188-1926-8053')
print(num)
# 18819268053
五、匹配替換返回數量
- 用正則表達式去匹配原始字符串,并把匹配到的內容替換
- 并且返回被替換掉的數量
import re
# 去掉電話號碼中的-
num = re.subn(r'\D', '', '188-1926-8053')
print(num)
# (18819268053, 2)
六、分割字符串
- 按照正則表達式的規則來分割字符串,并返回列表
- 可以規定分割的次數
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']
七、匹配所有
- 在字符串中匹配所有符合正則表達式的對象
- 并把這些對象通過列表list的形式返回
import re
pattern = re.compile(r'\W+')
result1 = pattern.findall('hello world!')
result2 = pattern.findall('hello world!', 0, 7)
print(result1)
# [' ', '!']
print(result2)
# [' ']
八、迭代器匹配
- 在字符串中匹配所有符合正則表達式的對象
- 并把這些對象通過迭代器的形式返回
import re
pattern = re.compile(r'\W+')
result = pattern.finditer('hello world!')
for r in result:
print(r)
九、編譯對象
- 把正則表達式編譯成Pattern對象
import re
pattern = re.compile(r'\W+')
十、修飾符
- re.I:忽略大小寫
- re.L:本地化識別匹配
- re.M:多行匹配
- re.S:使.匹配包括換行在內的所有字符
- re.U:根據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
相關推薦
- 2023-02-12 go語言?http模型reactor示例詳解_Golang
- 2023-02-23 GoLang的sync.WaitGroup與sync.Once簡單使用講解_Golang
- 2023-04-11 Python中字符串類型代碼的執行函數——eval()、exec()和compile()詳解_pyt
- 2023-11-11 flask python 設置定時任務 flask 周期性執行任務方案
- 2022-04-17 C語言?自定義類型全面系統理解_C 語言
- 2022-05-27 對Entity?Framework?Core進行單元測試_實用技巧
- 2022-03-26 C#?WPF數據綁定模板化操作的完整步驟_C#教程
- 2022-05-11 為什么一級封鎖協議不能保證不讀取到臟數據
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支