正则表达式——编译标志
发布时间:2020-12-14 00:57:27 所属栏目:百科 来源:网络整理
导读:re.S . 代表匹配任意单个字符,但是一般情况下n t字符却匹配不到。匹配时候加上re.S编译标志即可解决问题。 import re r1 = r"qq.com" #这里的‘.‘不止是点,代表匹配任意单个字符 re.findall(r1, "qq.com" )[ 'qq.com' ] re.findall(r1, "qqxcom" )[ 'qqx
re.S.代表匹配任意单个字符,但是一般情况下n t字符却匹配不到。匹配时候加上re.S编译标志即可解决问题。 >>> import re
>>> r1 = r"qq.com" #这里的‘.‘不止是点,代表匹配任意单个字符
>>> re.findall(r1,"qq.com")
['qq.com']
>>> re.findall(r1,"qqxcom")
['qqxcom']
>>> re.findall(r1,"qqxcom",re.S)
['qqxcom']
>>> re.findall(r1,"qqncom") #但是在匹配n t等却不行,加上re.S编译标志即可
[]
>>> re.findall(r1,"qqncom",re.S)
['qqncom']
>>> re.findall(r1,"qqncom")
[]
>>> re.findall(r1,"qqtcom",re.S)
['qqtcom']
re.Ire.IGNORECASE的缩写,此编译标志代表,匹配时候忽视字母大小写 >>> import re
>>> r1 = r"top"
>>> re.findall(r1,"top Top TOP")
['top']
>>> re.findall(r1,"top Top TOP",re.I)
['top','Top','TOP']
re.Mre.MULTILINE的缩写:多行匹配,影响 ^ 和 $ #!/usr/bin/python
#coding:utf8
import re
r1 = r"^hello|good$"
s = """ hello world hello python very good """
#在一个字符串有多行的时候
print re.findall(r1,s) #不加re.M之匹配第一行
print "#"*20
print re.findall(r1,s,re.M) #加了之后,匹配所与的行
$ python e6.py
['good']
####################
['hello','hello','good']
re.Xre.VERBOSE的简写,能够使用REs的verbose状态,使之正则表达式更加清晰。 #!/usr/bin/python
#coding:utf8
import re
#匹配一个电话号码:0570-1234567
res = r""" d{3,4} -? d{6,7} """
#res = r"d{3,4}-?{6,7}" 如果这样的话,匹配不需要加re.X
print re.findall(res,"0570-1234567")
print "#"*20
print re.findall(res,"0570-1234567",re.X)
$ python e7.py
[]
####################
['0570-1234567']
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |