环球即时:python正则表达式之re.match()与re.search()的用法及区别
目录
1、re.match()的用法2、re.search()的用法3、re.match()与re.search()的区别1、re.match()的用法
re.match()方法是从起始位置开始匹配一个模式,匹配成功返回一个对象,未匹配成功返回None。
语法:
(相关资料图)
re.match(pattern, string, flags=0)
参数说明:
pattern:匹配的正则表达式;string:要匹配的字符串;flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等;示例如下:
#!/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))
则返回结果为:
None
Process finished with exit code 0
这是因为re.match()仅从头开始匹配,由于起始位置处未找到符合匹配模式的内容,返回None。
2、re.search()的用法
re.search()方法是扫描整个字符串内进行模式匹配,只要找到第一个匹配就返回,如果字符串没有匹配,则返回None。
语法:
re.search(pattern, string, flags=0)
参数说明:
pattern:匹配的正则表达式;string:要匹配的字符串;flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等;示例如下:
#!/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()的区别
re.match()方法要求必须从字符串的开头进行匹配,如果字符串开头不符合模式规则,整个匹配就失败了,函数返回None;
re.search()并不要求必须从字符串的开头进行匹配,而是扫描整个字符串,直到找到第一个匹配。
到此这篇关于python正则表达式之re.match()与re.search()的用法及区别的文章就介绍到这了,更多相关python re.match()与re.search()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 1亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 2现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 3如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 4AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 5转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 6充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 7好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 8名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 9亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 10京东绿色建材线上平台上线 新增用户70%来自下沉市场