天天看点

python--正则match_compile_search_findall用法

正则表达式功能很强大,但学精通还是要自己花点时间的。

下面讲解下match、compile、search、findall常用的方法

Match

从字符串的第一个字符开始匹配,如果未匹配到返回None,匹配到则返回一个对象

<a href="https://s5.51cto.com/wyfs02/M01/9B/CD/wKiom1lnNMOR_QfTAAARIhJPi0A364.png-wh_500x0-wm_3-wmp_4-s_4217727800.png" target="_blank"></a>

未匹配到返回None

<a href="https://s5.51cto.com/wyfs02/M00/9B/CC/wKioL1lnNM2DABSvAAAQmmjmux4207.png-wh_500x0-wm_3-wmp_4-s_397505854.png" target="_blank"></a>

开始字符匹配到了h,在返回一个对象,并且需要通过group来获取这个h值。

Search

Search与match有些类似,只是搜索整个字符串然后第一个匹配到指定的字符则返回值,未匹配到则返回None。获取值得方法也需要通过group()

<a href="https://s1.51cto.com/wyfs02/M00/9B/CD/wKiom1lnNNjir83pAAANKxpCEag476.png-wh_500x0-wm_3-wmp_4-s_1787002632.png" target="_blank"></a>

未匹配到字符则返回None

<a href="https://s3.51cto.com/wyfs02/M00/9B/CD/wKiom1lnNOSSHlDJAAAQ7A9SHZg008.png-wh_500x0-wm_3-wmp_4-s_867038957.png" target="_blank"></a>

从字符串开始往后匹配,一匹配到则返回一个对象。需要通过group来获取匹配到的值。

Findall

Findall是匹配出字符串中所有跟指定值有关的值,并且以列表的形式返回。未匹配到则返回一个空的列表。

<a href="https://s4.51cto.com/wyfs02/M00/9B/CD/wKiom1lnNO_jsXynAAAK4RQgyw0439.png-wh_500x0-wm_3-wmp_4-s_781194583.png" target="_blank"></a>

未匹配到返回一个空列表。

<a href="https://s4.51cto.com/wyfs02/M01/9B/CD/wKiom1lnNPmQvO12AAALDTiG3KE923.png-wh_500x0-wm_3-wmp_4-s_1557466438.png" target="_blank"></a>

匹配出指定字符的所有值,并以列表返回值。

Compile

re.compile是将正则表达式转换为模式对象,这样可以更有效率匹配。使用compile转换一次之后,以后每次使用模式时就不用进行转换

<a href="https://s1.51cto.com/wyfs02/M01/9B/CD/wKioL1lnNQbSp5moAAARzTNHo3I065.png-wh_500x0-wm_3-wmp_4-s_3098510934.png" target="_blank"></a>

其实这跟执行re.findall(‘img’,a)得到的结果是一样的,只是使用了compile后,下面执行findall方法时就不需要再转换一次模式对象了。

本文转自niedongri 51CTO博客,原文链接:http://blog.51cto.com/laomomo/1947243,如需转载请自行联系原作者