Python正则表达式
Python正则表达式
原子是正则表达式中最基本的组成单位,每个正则表达式至少包含一个原子。常见原子类型有普通字符作为原子、非打印字符作为原子、通用字符作为原子、原子表。使用时需要调用re模块。
一、普通字符作为原子
Eg: import re
string=”taoyunjioayu”
pat=”yun”
rst=re.search(pat,string)
print(rst)
二、非打印字符作原子
Eg: \n 换行符 \t 制表符
import re
string=```taoyunjiaoyu```
pat=”\n”
rst=re.search(pat,string)
print(rst)
三、通用字符作为原子
\w:代表任何一个字母、数字、下划线
\W:代表任何一个非字母、数字、下划线
\d:代表一个十进制数字
\D:代表除十进制数字外的任何
\s:空白字符
\S:除空白字符
四、原子表
几个原子放在[ ]内组成了原子表。原子表内的各个原子是平等的。表示从原子表中任意的提取一个原子出来。
Eg:[sdk]
表示从string中提取s,d,k原子中的任何一个出来。
string=”djfhdkgsdk”
pat=”kg[sdk]”
rst=re.seach(pat,string)
print(rst)
运行结果:kgs
五、元字符
所谓的元字符,就是在正则表达式中具有一些特殊意义的字符,比如重复N次前面的字符。
(1) . :匹配除换行符以外任意字符(称为“通配符”)
(2) .. :模糊匹配
(3) ^ :匹配开始位置
(4) $ : 匹配结束位置
(5) * :重复匹配
(6) ? :匹配出现0、1次
(7) +:匹配出现1次到多次
(8) {n}:恰好出现n次
(9) {n,m}:最少出现n次,最多出现m次
(10) | :模式选择符或
(11) ( ) :模式单元
*等价于{0,正无穷} +等价于{1,} ?等价于{0,1}
六、模式修正符
Eg: rst=”re.search(pat,string,re.I)”
注:pat为正则表达式;string为数据源;I为模式修正符
(1)I 匹配时忽略大小写
(2)M 多行匹配
(3)L 本地化匹配识别
(4)U unicode的匹配
(5)S 让 . 匹配包括换行符
七、正则表达式函数
1.re.match:从头开始匹配
2.re.search:任意地方都可匹配,只能匹配一次(匹配成功一次后则不再进行后面的匹配,而是直接输出结果)
3、全局匹配函数:re.compile(正则表达式).findall(数据)
4、re.sub( ):用于字符串的替换
re.sub(正则表达式,替换为的内容,源数据)