一、定义
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern)。 可以用来检查一个串,是否含有某种子串。 将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
元字符:在正则表达式中被赋予特殊意义的符号↓↓↓↓↓↓↓
二、re模块(regular expression)
(1)re 模块使 Python 语言拥有全部的正则表达式功能。
(2)compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
(3)re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
2.1 常用方法
方法 | 实现功能 | 语法格式 | |
---|---|---|---|
compile() | compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。 | re.compile(pattern[, flags]) | |
search() | 在整个字符串中查找,返回第一个匹配内容,如果找到返回match对象,没找到返回None | re.search(pattern, string, flags=0) | |
match() | 从字符串的第一个字符开始匹配,如果找到返回match对象,没找到返回None | re.match(pattern, string, flags=0) | |
findall() | 在字符串中匹配,如果成功返回match对象,如果失败返回None | findall(string[, pos[, endpos]]) | |
finditer() | 在字符串中匹配,如果成功返回match可迭代对象,如果失败返回None | ||
split() | 按照匹配的字符串进行分割 | ||
sub() | 替换匹配的子字符串,返回替换之后的字符串 |
2.2 修饰符
re.compile(pattern[, flags]) 中flags 的参数
修饰符 | 实现功能 |
---|---|
re.I | 忽略大小写 |
re.L | 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境 |
re.M | 多行模式 |
re.S | 即为 . 并且包括换行符在内的任意字符(. 不包括换行符) |
re.U | 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库 |
re.X | 为了增加可读性,忽略空格和 # 后面的注释 |
从字符串的起始位置,匹配一个模式。匹配成功re.match方法返回一个匹配的对象,否则返回None。如果不是起始位置匹配成功,也返回none
语法:
re.match(pattern, string, flags=0)
参数 | 描述 |
---|---|
pattern | 匹配的正则表达式 |
string | 要匹配的字符串 |
flags | 标志位,用于控制正则表达式的匹配方式。如:是否区分大小写,多行匹配等等 |
2.3 实例
三、贪婪、非贪婪
- 什么是贪婪匹配: 贪婪匹配在匹配字符串时总是尝试匹配尽可能多的字符。
- 什么是非贪婪匹配:与贪婪匹配相反,非贪婪匹配在匹配字符串时总是尝试匹配尽可能少的字符。、