re.match用于从字符串开头匹配模式,若开头不匹配则返回None;其语法为re.match(pattern, string, flags=0),常用于判断前缀匹配或提取起始内容,如匹配成功可使用group()获取结果,否则应使用re.search进行全局查找。

re.match 是 Python 正则表达式模块 re 中的一个函数,用于从字符串的开头匹配一个模式。如果开头不匹配,则返回 None,不会继续向后查找。
基本语法
re.match(pattern, string, flags=0)
- pattern:正则表达式模式
- string:要匹配的字符串
- flags:可选标志位,如 re.IGNORECASE、re.MULTILINE 等
返回值是一个 match 对象,包含匹配信息;如果没有匹配,则返回 None。
常见用法示例
判断字符串是否以某个模式开头:
立即学习“Python免费学习笔记(深入)”;
import retext = "Hello World"
result = re.match(r"Hello", text)
if result:
print("匹配成功:", result.group())
else:
print("不匹配")
输出:匹配成功: Hello
注意:下面这个例子会失败,因为 match 只检查开头:
text = "Say Hello"result = re.match(r"Hello", text) # 返回 None
如果想在任意位置查找,应使用 re.search()。
提取匹配内容
通过 group() 方法获取匹配的子串:
text = "Username123"result = re.match(r"(\w+)(\d+)", text)
if result:
print("全部匹配:", result.group(0))
print("第一组:", result.group(1)) # 字母部分
print("第二组:", result.group(2)) # 数字部分
输出:
- 全部匹配: Username123
- 第一组: Username
- 第二组: 123
使用标志位
忽略大小写匹配:
text = "hello world"result = re.match(r"HELLO", text, re.IGNORECASE)
# 或者写成 re.match(r"HELLO", text, re.I)
if result:
print("匹配成功")
基本上就这些。记住:re.match 只管开头,不管中间。需要全局搜索时换 re.search 或 re.findall。不复杂但容易忽略这一点。











