1 前言
正则表达式(Regular Expression,简称 Regex)是对字符串操作的一种逻辑公式,通过事先定义好的一些特定字符及其组合,组成一个'规则字符串',用来表达对字符串的过滤、匹配或替换逻辑。它是一种文本模式,描述在搜索文本时要匹配的一个或多个字符串。
在 Python 中,正则表达式的功能由内置的 re 模块提供。该模块使 Python 语言拥有全部的正则表达式功能,并提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串作为它们的第一个参数。
正则表达式广泛应用于爬虫数据抓取、日志分析、表单校验、文本清洗等场景。
2 基本语法与核心函数
2.1 match 函数
re.match() 只从字符串的最开始与 pattern 进行匹配。如果字符串开头不匹配,即使后面有匹配内容也会返回 None。
语法:
re.match(pattern, string, flags=0)
参数说明:
pattern: 要匹配的正则表达式。string: 被搜索用于匹配字符串开头的模式。flags: 修饰符,可以使用按位 OR (|) 指定不同的标志,如re.IGNORECASE。
返回值:
成功时返回匹配对象,失败时返回 None。使用 group() 或 groups() 获取匹配的表达式。
示例:
import re
# 未从初始位置匹配,会返回 None
line = 'i can speak good english'
matchObj = re.match(r'\s(\w*)\s(\w*).*', line)
if matchObj:
print('matchObj.group() :', matchObj.group())
else:
print('no match!') # 输出:no match!
# 从初始位置开始匹配
matchObj = re.match(r'(i)\s(\w*)\s(\w*).*', line)
if matchObj:
print('matchObj.group() :', matchObj.group())
print('matchObj.group(1) :', matchObj.group(1))
print('matchObj.group(2) :', matchObj.group())
(, matchObj.group())


