正则表达式——编译标志

前端之家收集整理的这篇文章主要介绍了正则表达式——编译标志前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

re.S

.代表匹配任意单个字符,但是一般情况下\n \t字符却匹配不到。匹配时候加上re.S编译标志即可解决问题。

@H_404_7@>>> 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,"qq\ncom") #但是在匹配\n \t等却不行,加上re.S编译标志即可 [] >>> re.findall(r1,"qq\ncom",re.S) ['qq\ncom'] >>> re.findall(r1,"qq\ncom") [] >>> re.findall(r1,"qq\tcom",re.S) ['qq\tcom']

re.I

re.IGNORECASE的缩写,此编译标志代表,匹配时候忽视字母大小写

@H_404_7@>>> import re >>> r1 = r"top" >>> re.findall(r1,"top Top TOP") ['top'] >>> re.findall(r1,"top Top TOP",re.I) ['top','Top','TOP']

re.M

re.MULTILINE的缩写:多行匹配,影响 ^ 和 $

@H_404_7@#!/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.X

re.VERBOSE的简写,能够使用REs的verbose状态,使之正则表达式更加清晰。

@H_404_7@#!/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']
原文链接:https://www.f2er.com/regex/359845.html

猜你在找的正则表达式相关文章