正则表达式
2019-02-28 本文已影响0人
錦魚
正则表达式
字符规则
贪婪匹配
. : 除换行外任意字符
\d:匹配数字[0-9]
\D:匹配非数字
\w:匹配单词字符( a-z , A-Z , 0-9 , _ )
\W:匹配单词非字符
\s:匹配空白字符
\S:匹配非空白字符
^:以 .. 开头
$:以 .. 结尾
\\:转译符号
():分组
| :或
(P<name>\w+).*(P=name) 别名
* :匹配*号前面字符0次或者无限次
+:匹配+号前面字符1次或者无限次
?:匹配?号前面字符0次或者1次
{n,m}:匹配{n,m}前字符,n~m次
非贪婪匹配
>*?+?
??
re 模块
import re
re.compile(rule,re.rule)
- 生成一个正则匹配规则对象
匹配规则-->re.rule
1).re.I(re.IGNORECASE): 忽略大小写
2).re.M(MULTILINE): 多行模式,改变’^’和’$’的行为
3).re.S(DOTALL): 点任意匹配模式,改变’.’的行为
4).re.L(LOCALE): 使预定字符类 \w \W \b \B \s \S 取决于当前区域设定
5).re.U(UNICODE): 使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性
6).re.X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释
re.match(rule,coutent)
- 从 起始 位置开始匹配,单次匹配,有结果则返回,无结果则返回None
re.search(rule,content)
- 从 整个字符串 中开始匹配,单次匹配,有结果则返回span,无结果则返回None
re.findall(rule,content)
- 将字符串中所有符合正则规则的结果全部匹配出来,最终返回的是 列表
re.finditer(rule,content)
- 将字符串中所有符合正则规则的结果全部匹配出来,最终返回的是 可迭代对象
re.sub(rule,result,content)
- 替换
- result支持函数
re.spilt(rule,content)
- 字符串分割