正则表达式库re 部分函数含义(一)
import re
常用操作符
符号 |
符号含义 |
. |
表示任何一个单字符 |
[] |
表示一个取值范围 |
[^] |
表示一个非取值范围 |
+ |
表示前一个字符1次或无限次扩展 |
* |
表示前一个字符0次或无限次扩展 |
? |
表示前一个字符0次或1次扩展 |
|
表示 或 的关系 |
{m} |
表示前一个字符m次扩展 |
{m,n} |
表示前一个字符m至n次(包含n次)扩展 |
^ |
表示前一个字符为正则表达式开头 |
$ |
表示前一个字符为正则表达式结尾 |
() |
分组标记,组内只能使用 |
\d |
表示数字,即[0-9] |
\w |
表示字符,即[A-Za-z0-9_] |
\b |
表示字符边界位置,不消耗字符 |
\s |
表示空格符 |
\W |
表示除了[A-Za-z0-9_]以外的字符 |
\D |
表示除了数字外的字符 |
\S |
表示除了空格符以外的字符 |
\B |
表示除了字符串开头与结尾的位置 |
常用函数
re.search(pattern, string, flags=0)
re.match(pattern, string, flag=0)
re.findall(pattern, string, flag=0)
re.split(pattern, string, maxsplit, flags=0)
re.finditer()
re.sub(pattern, repl, string, count=0, flags=0)
re.compile(pattern, flags=0)
参数 |
含义 |
pattern |
正则表达式表示 |
string |
待匹配字符串 |
falgs |
正则表达式控制标记 |
maxsplit |
最大分割数,剩余部分作为最后一个元素输出 |
repl |
替换待匹配字符串的字符串 |
count |
匹配的最大替换次数 |
falgs值:
- re.I/ re.IGNORECASE 忽略正则表达式大小写
- re.M/ re.MULTILINE ^操作符能够将给定字符串的每行当做匹配开始
- re.S/ re.DOTALL .操作符能够匹配所有字符,默认匹配除换行外的所有字符
re库的等价用法
- 函数式用法
- 面向对象式用法
将一个正则表达式通过pat = re.compile(pattern)封装为一个对象。
通过 rst = pat.search(string) 调用该正则表达式
PS:pattern, string含义同上
re库的match对象介绍
常用属性
属性 |
属性含义 |
match.string |
待匹配的文本 |
match.re |
待匹配的正则表达式对象 |
match.pos |
正则表达式搜索文本的开始位置 |
match.endpos |
正则表达式搜索文本的结束位置 |
常用方法
方法 |
方法含义 |
match.group(0) |
获得匹配后的所有字符串 |
match.group(i) |
获得匹配后的第i个符合条件的字符串 |
match.start() |
匹配字符串在原始字符串的起始位置 |
match.end( ) |
匹配字符串在原始字符串的结束位置 |
match.span() |
返回一个元组 (.start(),.end()) |
re库使用须知
默认贪婪匹配:即在有一定歧义的情况下,默认匹配最长的字符串
防止贪婪匹配的最小匹配操作符:
最小匹配操作符 |
匹配符含义 |
*? |
前一个字符0次或无限次扩展的最小匹配 |
+? |
前一个字符1次或无限次扩展的最小匹配 |
?? |
前一个字符0次或1次扩展的最小匹配 |
{m,n}? |
前一个字符扩展m至n(含n)次的最小匹配 |