(13)python 正则表达式
匹配单个字符
f. o f和o之间是任意字符 例如:fbo123
.. 任意两个字符
\.用来匹配.
边界匹配
the 表示包含the的任何字符串
^from 表示以from开头的所有字符串都符合
/bin$ 表示以/bin结束的所有字符串
^abc$ 固定必须是abc
方括号单个字符
a[asd]c ac中间可以是 a 、s、d 中的一个字符
[ab][cd] 可以是ac ad bc bd
方括号范围字符
可以是 a-z A-Z 1-9
a[d-h]b 中间必须是d-h之间的一个
a[a-fB]b a到f 或者是B
闭包操作符
*匹配左边的字符 可以出现零次或者多次
+ 一次或者多次
?零次或者一次
{} 里面可以单个数字,或者N,M的形式 表示前面的字符可以出现多少次 {8} 必须出现8次 {5,8} 必须出现5到8次
特殊字符
用一个特殊字符来简写某些表达式
例如 \W 表示所有数字字符的集合(包括大小写)
圆括号
python里正则表达式的用法
1.compile()
compile(‘正则表达式’) 返回一个正则表达式对象
c=re.compile('a[0-9]b')#
2.group()和groups()
成功调用match() 或者search() 后返回一个匹配对象
此匹配对象有两个方法 group()和groups()
group()要么返回整个匹配对象,要么根据要求返回特定子组
groups()返回一个唯一或全部子组的元组
3.match()
从字符串的起始位置对模式进行匹配,如果成功就返回一个匹配对象,如果失败返回None。
group()方法用来显示成功匹配的字符串
import re a=re.match('..abc$','g5abc') if a is not None:#如果匹配成功 print(a.group())
也可以用
a=re.match('..abc$','g5abc').group()
但是匹配失败会抛出AttributeError异常
4.search()
和match()用法一样,区别在于在任意位置对给定正则表达式搜索第一次出现的匹配情况
import re a=re.match('foo','sfood').group()#匹配失败,会报错不能打印a a=re.search('foo','sfood').group()#搜索成功,但匹配 能打印出a print(a)