正则表达式
什么是正则表达式:
描述字符串排列的一套规则。
基础知识
1.原子
原子正则表达式中最基本的组成单位,每个正则表达式中至少要包含一个原子
(1)普通字符作为原子
(2)非打印字符作为原子 :字符串中用于格式控制的字符 如 “\n”,“\t”
(3)通用字符作为原子:一个原子可以匹配一类字符 “\w” ,"\W","\d","\D" ,"\s","\S"
(4)原子表:可以定义一组地位平等的原子,然后匹配的时候回取该原子表中的任意原子进行匹配。[xyz]py,[^xyz]py
2.元字符
正则表达式中具有特殊意义的字符。
(1)任意匹配元字符 : “.”
(2) 边界限制元字符:“^”匹配字符串的开始,“$”匹配字符串的结束
(3)限定符:“*”、“?”、“+”、“{n}”、“{n,}”、“{n,m}”
(4)模式选择符:“|”
(5)模式单元符:“()”将一些原子组成一个大原子使用
3.模式修正
4.贪婪模式与懒惰模式
贪婪模式即尽可能多的匹配,懒惰模式即尽可能少的匹配
如想在某些字符间匹配任意字符:“p.*y”默认是贪婪模式,转化为懒惰模式“p.*?y”
正则表达式常见函数
1
.re.match(pattern,string,flag) 表示从源字符串的起始位置匹配一个模式
2.re.search() 在全文中进行搜索并匹配
3.全局匹配函数:将符合模式的内容全部匹配(>=1)出来
思路如下:(1)使用re.compile()对正则表达式进行预编译
(2)编译后,使用findall()根据正则表达式从源字符串中将匹配的结果全 部找出。
4.re.sub(pattern,rep,string,max) 根据正则表达式实现替换某些字符串的功能。