正则表达式

来源:互联网 发布:知乎平均水平 编辑:程序博客网 时间:2024/05/20 20:48

函数

re.match()函数

re.match()函数尝试从字符串起始位置匹配,如果匹配失败的话返回none

re.match(pattern, string, flags = 0)

参数说明:

参数 描述 pattern 正则表达式 string 要匹配的字符串 flags 标志位,如是否要区分大小写

group(num)和groups()的使用

匹配对象方法 描述 group(num = 0) 针对字符串匹配结果设置多个分组,通过num的设置来控制返回的是第几个组的值 groups() 返回一个包含所有小组的字符串的元组

实例:

import repattern = 'abc(def)gh(ig)k(lm)nop'string = "abcdefghigklmnopqrst"for i in range(1,4):    result  = re.search(pattern, string).group(i)    print(result)result1 = re.search(pattern, string).groups()print(result1)

re.search()

re.search()函数扫描整个字符串,并返回第一个成功匹配的

re.search(pattern, string, flags = 0)

参数说明:

参数 描述 pattern 正则表达式 string 要匹配的字符串 flags 标志位,如是否要区分大小写

re.search()和re.match()最主要的区别就是是否从字符串头开始匹配

re.sub()

用于替换字符串中的匹配项

re.sub(pattern, repl, string, count = 0, flags = 0)

参数说明:

参数 描述 pattern 正则表达式 repl 替换的字符串,也可以为一个函数 string 待匹配的字符串 count 模式匹配后,替换的最大次数, 默认0表示替换所有 flags 标志位

实例:

#----------re.sub()-------------#import repattern = 'php'sub = 'python'string = 'I love php'result = re.sub(pattern, sub, string)print(result)result1 = re.sub(pattern, sub, string)  # repl是函数print(result1)def sub():    return 'python'

修饰符

修饰符 描述 re.I 使匹配对大小写不敏感 re.M 多行匹配,这将影响^和$ re.L 做本地化识别 re.S 使.匹配包括换行符在内的所有字符 re.U 根据Unicode字符集解析字符,这将影响\w\W\b\B re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解

多个标志同时选择:

re.search(pattern, string, re.I|re.M)

模式

模式字符串用特殊的语法来表示正则表达式,字母和符号匹配它们本身,但是加上反斜杠将会拥有不同的含义;标点只有被转义后才表示自身,否则将有特殊含义,如点号;反斜杠本身也需要被转义,可以使用r来表示原始字符串

模式 描述 ^ 匹配字符串开头 $ 匹配字符串结束 . 匹配任意除换行符的字符 […] 用来表示一组字符单独列出[abc]匹配’a’或者’b’或者’c’ [^…] 除了括号中的字符都匹配 re* 匹配0个或者多个表达式 re+ 匹配1个或者多个表达式 re? 匹配0个或者1个表达式 re{n} 恰好匹配表达式n次 re{n, } 至少n次 re{n, m} n到m次 a|b 匹配a或者b () 匹配括号内的表达式,页表示一个组 \w 字母数字下划线 \W 非字母数字下划线 \s 匹配任意空白字符 \S 非空白字符 \d 任意数字 \D 任意非数字 \A 匹配字符串开始 \z 匹配字符串结束 \Z 匹配字符串结束,如果存在换行符,则匹配到换行符前的结束字符 \G 匹配最后匹配完成的位置 \b 匹配单词边界 \B 非匹配单词边界 \n 匹配换行符 \t 匹配制表符
原创粉丝点击