(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)

 

 

posted @ 2019-02-01 15:13  富坚老贼  阅读(226)  评论(0编辑  收藏  举报