網(wǎng)站首頁 編程語言 正文
1、re.match()的用法
re.match()方法是從起始位置開始匹配一個模式,匹配成功返回一個對象,未匹配成功返回None。
語法:
re.match(pattern, string, flags=0)
參數(shù)說明:
- pattern:匹配的正則表達(dá)式;
- string:要匹配的字符串;
- flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫,多行匹配等等;
示例如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
if __name__ == '__main__':
# 匹配模式
test_pattern = r"\d{2}年"
# 待匹配的字符串
test = "18年2019年2020年"
print(re.match(test_pattern, test).group())
輸出:
18年
Process finished with exit code 0
若將匹配模式改成:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
if __name__ == '__main__':
# 匹配模式
test_pattern = r"\d{4}年"
# 待匹配的字符串
test = "18年2019年2020年"
print(re.match(test_pattern, test))
則返回結(jié)果為:
None
Process finished with exit code 0
這是因為re.match()僅從頭開始匹配,由于起始位置處未找到符合匹配模式的內(nèi)容,返回None。
2、re.search()的用法
re.search()方法是掃描整個字符串內(nèi)進(jìn)行模式匹配,只要找到第一個匹配就返回,如果字符串沒有匹配,則返回None。
語法:
re.search(pattern, string, flags=0)
參數(shù)說明:
- pattern:匹配的正則表達(dá)式;
- string:要匹配的字符串;
- flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫,多行匹配等等;
示例如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
if __name__ == '__main__':
# 匹配模式
test_pattern = r"\d{4}年"
# 待匹配的字符串
test = "18年2019年2020年"
print(re.search(test_pattern, test).group())
輸出:
2019年
Process finished with exit code 0
這是因為re.search()掃描整個字符串,找到符合匹配模式的第一個匹配就返回了。
3、re.match()與re.search()的區(qū)別
re.match()方法要求必須從字符串的開頭進(jìn)行匹配,如果字符串開頭不符合模式規(guī)則,整個匹配就失敗了,函數(shù)返回None;
re.search()并不要求必須從字符串的開頭進(jìn)行匹配,而是掃描整個字符串,直到找到第一個匹配。
原文鏈接:https://blog.csdn.net/kevinjin2011/article/details/125598411
相關(guān)推薦
- 2022-09-07 C語言函數(shù)調(diào)用堆棧詳情分析_C 語言
- 2022-03-20 Maven工程pom中如何定義jdk版本(maven配置jdk版本)
- 2022-07-16 BeanFactory和FactoryBean的區(qū)別
- 2023-06-18 C#中獲取文件大小問題_C#教程
- 2022-05-20 python?特有語法推導(dǎo)式的基本使用_python
- 2022-04-26 SQL?Server中Sequence對象用法_MsSql
- 2022-07-09 Python如何保留float類型小數(shù)點后3位_python
- 2022-08-04 C++中純虛函數(shù)的實例詳解_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 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錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支