python正则表达式3-模式匹配

Posted ghostwu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python正则表达式3-模式匹配相关的知识,希望对你有一定的参考价值。

re.S,使 ‘.‘  匹配换行在内的所有字符

>>> pattern=rghostwu.com
>>> import re
>>> re.findall( pattern, ghostwuacom )
[ghostwuacom]
>>> re.findall( pattern, ghostwubcom ) 
[ghostwubcom]
>>> re.findall( pattern, ghostwu.com ) 
[ghostwu.com]
>>> re.findall( pattern, ghostwu\ncom ) 
[]
>>> re.findall( pattern, ghostwu\ncom, re.S )
[ghostwu\ncom]
>>> 

re.M,多行匹配,主要影响( ^和$ )

>>> str="""
... hi,ghostwu,how are you
... ghostwu: my name is ghostwu,how are you
... ghostwu: nice to meet you
... hello ghostwu
... """
>>> pattern = r"^ghostwu"
>>> re.findall( pattern, str )
[]
>>> re.findall( pattern, str, re.M )
[ghostwu, ghostwu]
>>> 

当正则有多行的时候,可以开启verbose模式re.X

>>> pattern=r"""
... \d{3,4}
... -?
... \d{8}
... """
>>> str="020-88888888"
>>> re.findall( pattern, str )
[]
>>> re.findall( pattern, str, re.X )
[020-88888888]
>>> 

():分组与|  的使用,  假如我们要匹配一个.com,.cn,.net结尾的email

>>> pattern=r"\[email protected]\w+(.com|.cn|.net)"
>>> email="[email protected]">>> re.match( pattern, email )
<_sre.SRE_Match object at 0x7f2b74481828>
>>> re.match( pattern, [email protected] )
<_sre.SRE_Match object at 0x7f2b744818a0>
>>> re.match( pattern, [email protected] )
<_sre.SRE_Match object at 0x7f2b74481828>
>>> re.match( pattern, [email protected] )
>>> 

匹配超链接

>>> html="""
... <a href="http://www.baidu.com">百度</a>
... <a href="index.html">首页</a>
... <p>这是一段说明</p>
... <a href="http://www.taobao.com">淘宝</a>
... """
>>> re=r"href=\"(.+?)\""
>>> pattern=r"href=\"(.+?)\""
>>> re
href=\\"(.+?)\\"
>>> import re
>>> re.findall( pattern, html )
[http://www.baidu.com, index.html, http://www.taobao.com]
>>> 

 

以上是关于python正则表达式3-模式匹配的主要内容,如果未能解决你的问题,请参考以下文章

python基础学习笔记(十三)

python正则表达式3-模式匹配

循环通过 python 正则表达式匹配

Python学习笔记之正则表达式

python 正则表达式 re模块基础

趣玩Python第16关:3个技巧掌握正则