在Python3中使用re模块需编写正则表达式并选择匹配函数:1. re.match从开头匹配,re.search查找首个匹配项;2. re.findall返回所有匹配字符串,re.finditer返回匹配对象迭代器;3. 用()分组捕获,通过.group()获取子串;4. 使用flags如re.I、re.M、re.S调整匹配模式,实现忽略大小写、多行匹配等。

在 Python3 中使用 re 模块匹配满足条件的文本,关键在于编写正确的正则表达式并选择合适的匹配函数。下面介绍几种常见用法和场景。
re.match 从字符串开头尝试匹配,如果开头不匹配就返回 None。
re.search 在整个字符串中搜索第一个满足条件的子串。
例如,检查字符串是否以数字开头:import re
text = "123abc"
result = re.match(r'\d+', text) # 匹配开头的数字
if result:
print("匹配成功:", result.group()) # 输出: 123
想要找出所有符合规则的内容,使用 re.findall 返回字符串列表,或 re.finditer 返回匹配对象迭代器。
立即学习“Python免费学习笔记(深入)”;
比如提取所有邮箱地址:text = "联系我 at alice@example.com 或 bob@test.org"
emails = re.findall(r'\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b', text)
print(emails) # 输出: ['alice@example.com', 'bob@test.org']
用括号 () 将需要提取的部分括起来,通过 .group(1) 等获取对应组。
例如提取日期中的年月日:text = "今天是2024-04-05"
match = re.search(r'(\d{4})-(\d{2})-(\d{2})', text)
if match:
year, month, day = match.groups()
print(f"年: {year}, 月: {month}, 日: {day}")
通过 flags 参数改变匹配行为,常用如:
text = "Python is great. PYTHON rocks. python everywhere." matches = re.findall(r'\bpython\b', text, flags=re.IGNORECASE) print(matches) # 输出: ['Python', 'PYTHON', 'python']
基本上就这些。根据你要匹配的内容设计正则表达式,再选对方法,就能准确抓取符合条件的选项。
以上就是python3 re如何匹配满足条件的选项?的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号