加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式语法

发布时间:2020-12-13 22:02:55 所属栏目:百科 来源:网络整理
导读:#!/usr/bin/envpython#-*-coding:utf-8-*-importredefre_pattern_syntax():#dot,caret,$#*/+/?#*表示匹配0个到都哦个#ab+表示匹配1个或多个的b#?表示匹配0到1个printre.match(r'.*','abcnedf').group()#点表示任意一个字符,*任意多少个,只能匹配一行字
#!/usr/bin/envpython
#-*-coding:utf-8-*-
importre
defre_pattern_syntax():
#dot,caret,$
#*/+/?
#*表示匹配0个到都哦个
#ab+表示匹配1个或多个的b
#?表示匹配0到1个
printre.match(r'.*','abcnedf').group()
#点表示任意一个字符,*任意多少个,只能匹配一行字符,碰到表示换行符号不再匹配
printre.match(r'.*','abcedf',re.DOTALL).group()
#通过加re.DOTALL,这个点不仅仅表示任意字符还可以表示换行符
printre.findall(r'^abc','abchabc')
printre.findall(r'^abc','abchabc',re.MULTILINE)
#re.MULTILINE把字符串当多行来处理,碰到回车符当另外一行处理
printre.findall(r'abcd$','abc1habc2')#$表示匹配一个字符串的结束
printre.findall(r'abcd$','abc1habc2',re.MULTILINE)#$表示匹配一个行的结束
printre.match(r'ab*','a')
printre.match(r'ab+','abd')
printre.match(r'ab?','abc').group()
#greedy/non-greedy贪婪和非贪婪
#{m}匹配次数
#转义字符用来匹配特殊字符
#[]集合
s='<H1>title</H1>'
printre.match(r'<.+>',s).group()#默认用贪婪模式匹配
printre.match(r'<(.+)>',s).group(1)#基于贪婪模式,打印出它的group
printre.match(r'<(.+?)>',s).group()#表示用非贪婪模式匹配任意字符
printre.match(r'<(.+?)>',s).group(1)
printre.match(r'ab{2,4}','abbbbbb').group()#这样也是属于贪婪模式尽量的匹配多
printre.match(r'ab{2,4}?','abbbbbb').group()#这样是非贪婪模式匹配,尽量匹配少
printre.search(r'','Thepriceis$9.9').groups()#若要匹配$匹配符号,不加、当作结束符号来处理,
printre.search(r'$','Thepriceis$9.9').groups()
printre.search(r'0[xX]([0-9A-Fa-f]{6})','Thehexvalueis0xFF03D6').groups()




if__name__=='__main__':
re_pattern_syntax()


####一些特殊字符的使用

#!/usr/bin/envpython
#-*-coding:utf-8-*-
importre
defre_pattern_syntax():
#number表示前一个匹配组
printre.search(r'(d)(d)(d)123','135135').groups()
printre.search(r'(d)(d)(d)123','135135').groups()
printre.search(r'(d{3})1','135135').groups()
#dD匹配一个连字符匹配非连字符
#b匹配单词的开头和结尾
printre.search(r'(d{3}-d{4}-d{4})','157-5923-2692').groups()
printre.search(r'(d{3}-d{4}-d{4})','157-5923-2692').groups()
printre.search(r'b(d{3}-d{4}-d{4})b','157-5923-2692').groups()#不合法的是无法匹配出来的
printre.search(r'(d{3}Dd{4}Dd{4})','157-5923-2692').groups()
#sS空格非空格f换页v垂直制表
printre.search(r'(d{3}sd{4}sd{4})','157059232692').groups()
printre.search(r'(d{3}Sd{4}Sd{4})','1570-5923-2692').groups()
#wW匹配字符和非字符
printre.match(r'(w+)s*:s*(w+)','Name:Joey').groups()
#或略大小写
printre.match(r'(Name)s*:s*(w+)','NAME:Joey',re.IGNORECASE).groups()
#re.VERBOSE注释/re.compile
s='thenumberis20.33'
r=re.compile(r'''
d+#整数部分
.?#小数部分
d*#小数部分,可选

''',re.VERBOSE)
printre.search(r,s).group()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读