devi into python 笔记(六)正则表达式 原始字符串

阅读: 评论:0

devi into python 笔记(六)正则表达式 原始字符串

devi into python 笔记(六)正则表达式 原始字符串

字符串函数replace:

    #place:#字符串的replace方法:替换子串,不改变原来的字符串s = "broad road"#打印出来会发现不单单是road被替换了,broad也变了#这是因为broad也包含road,replace方法place('road', 'rd.')

原始字符串 r'string':

    #原始字符串:只要在普通字符串前加上 r 就可以#这样做是表明这个字符串中的所有字符都不转义,避免反斜线灾难print r'this is a tn string'#原始字符串在正则表达式中很重要

Python正则表达式:

   #Python的正则包#$:匹配字符串末尾的,相对应的匹配字符串开头的是 ^s = 'broad road'
#re.sub(pattern, str1, str2):将str2中符合pattern的串替换为str1print re.sub('road$', 'rd.', s)#但如果末尾是broad呢,很遗憾,也会被替换s = 'broad broad'print re.sub('road$', 'rd.', s)#b:单词的边界必须在这里#这样不论road出现在哪里,只要是整个的单词就会匹配s = 'broad road room1'print re.sub(r'broadb', 'rd.', s)

re.search(pattern, string): pattern正则表达式 string 要匹配的字符

    import re#re.search(pattern, string):re包重要的函数#pattern:正则 string:要匹配的字符串 #返回值:不能匹配返回None 匹配成功返回一堆描述,反正不是None,根据一切皆对象姑且称之为'匹配成功对象'#^匹配开始,$匹配结束 ?匹配0个或1个Mpattern = '^M?M?M?$'print re.search(pattern, 'M')print re.search(pattern, 'MMMM')#|匹配前后两个表达式,先匹配左边的表达式,一旦成功匹配就不去匹配右边的表达式。#记住(A|B|C)含义是:精确匹配ABC中的一个,匹配一个后便不再匹配其他的了#如果不加括号,则其作用范围就是整个正则表达式pattern = '^M?M?M?(CM|CD|D?C?C?C?)$'print re.search(pattern, 'MCM')print re.search(pattern, 'MCMC')#{m}匹配前面字符m次#{m, n}匹配前面的字符m次至n次,m n都可以为0pattern = '^M{0,3}$'print re.search(pattern, 'M')print re.search(pattern, 'MMMM')

松散正则表达式: re.VERBOSE 、 repile().search().groups()

    #松散正则表达式re.VERBOSE#1忽略空白:比如空格制表符回车等,也就是说可以在表达式的任意地方添加任意多的空白。#2忽略注释:这样就可以在合适的位置加上注释提高可读性。pattern = """^             #在这里匹配开始M{0,3}    #匹配0-3个M(CM|CD|D?C?C?C?)  #匹配xxx$             #在这里匹配结束"""#使用松散正则,要给search一个re.VERBOSE表明这是一个松散正则print re.search(pattern, 'MCM')print re.search(pattern, 'MCM', re.VERBOSE)print re.search(pattern, 'MCMC', re.VERBOSE)#如果要在松散正则中匹配空白而不是被忽略掉,就要用转移字符来做pattern = """ab cd"""#这表示要在b和c之间匹配一个空格print re.search(pattern, 'ab cd', re.VERBOSE)#compile 和 groups 简单使用
   #repile():接受一个正则表达式返回一个正则对象pattern = repile(r'^(d{3})-(d{3})-(d{4})$')#正则对象的search()方法匹配同re.search()类似,接受一个正则表达式,匹配失败返回None,成功返回'匹配成功对象'
   #'匹配成功对象'.gourps()返回一个tuple,元素对应于前面正则表达式中的组。一个小括号即使一个组
   #匹配成功返回的'匹配成功对象'才能调用groups,因为匹配失败返回None,是没有groups()函数的print pattern.search('800-555-1212').groups()

 

转载于:.html

本文发布于:2024-02-04 09:15:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170703879654287.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23