温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python正则怎么匹配文本

发布时间:2026-09-24 23:20:53 来源:亿速云 阅读:101 作者:小樊 栏目:编程语言

在 Python 中,通常使用 re 模块来进行正则表达式匹配。下面从基础到常用场景给你一个清晰说明。


一、基本用法

import re

text = "我的电话是13812345678,邮箱是abc@example.com"

# 1. 查找第一个匹配
result = re.search(r'\d+', text)
print(result.group())  # 13812345678

二、常用方法

1. re.search()

只找第一个匹配

re.search(pattern, string)
re.search(r'\d+', "abc123def456")
# 匹配到:123

2. re.match()

只从字符串开头匹配

re.match(r'\d+', "123abc")   # 匹配
re.match(r'\d+', "abc123")   # None

3. re.findall()

返回所有匹配结果(列表)

re.findall(r'\d+', "abc123def456")
# ['123', '456']

4. re.finditer()

返回迭代器(含位置信息)

for m in re.finditer(r'\d+', text):
    print(m.group(), m.start(), m.end())

5. re.sub()

替换文本

re.sub(r'\d+', '***', "电话13812345678")
# 电话***

三、常见正则语法

符号 含义
. 任意字符(除换行)
\d 数字
\D 非数字
\w 字母数字下划线
\s 空白符
^ 开头
$ 结尾
* 0次或多次
+ 1次或多次
? 0次或1次
{n,m} n到m次
[] 字符集
() 分组

四、实用示例

1. 匹配手机号

re.search(r'1[3-9]\d{9}', text)

2. 匹配邮箱

re.search(r'\w+@\w+\.\w+', text)

3. 提取括号内的内容

re.findall(r'\((.*?)\)', "a(b) c(d)")
# ['b', 'd']

4. 多行匹配

re.findall(r'^abc', text, re.MULTILINE)

五、注意事项

1. 使用原始字符串 r""

避免转义问题:

r'\d'   # 正确
'\\d'   # 容易出错

2. 中文匹配

re.findall(r'[\u4e00-\u9fa5]+', text)

如果你有具体的文本和想匹配的内容,可以直接发给我,我可以帮你写正则。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手