- 正则表达式
- 普通字符:
import re # 完全匹配 r = re.findall('xin', "wewqefrexinminwdwwrffdasw") print(r) # ['xin']
- 元字符:
# . : 通配符(代指一个字符) r = re.findall('xin.i', "wewqefrexinminwdwwrffdasw") print(r) # ['xinmi'] # ^ : 匹配开头 r = re.findall('^xin', "xinwewqefrexinminwdwwrffdasw") print(r) # ['xin'] # $ : 匹配结尾 # * : 匹配前面出现0到多次 r = re.findall('xin*', "wwwwwxinnnnnnx") print(r) # ['xinnnnnn'] # + : 匹配前面出现1到多次 # ? : 匹配前面0到1次 # {} : 重复 r = re.findall('xin{3}', "wwwwwxinnnnnnx") print(r) # ['xinnn']
- 字符集
# [] : 字符集(元字符在字符集中是普通字符) r = re.findall('a[bc]d', "wwwabd") print(r) # ['abd'] r = re.findall('a[bc]d', "wwwacd") print(r) # ['acd']
图片.png
图片.png
图片.png
- 普通字符:
- 正则补充
- python使用正则
re
模块import re # re.match() 从头匹配 # 简单的匹配方式 # 无分组 origin = "hello xinmin bcd xinmin lge xin acd 11" r = re.match("h\w+", origin) print(r.group()) # 获取匹配到的所有结果 hello print(r.groups()) # 获取模型中匹配到的分组结果 () print(r.groupdict()) # 获取模型中匹配到的分组中所有执行了key的组 {} # 分组匹配的方式 # 有分组 origin = "hello xinmin bcd xinmin lge xin acd 11111" r = re.match("(h)(\w+)", origin) ret = re.match("(?P<n1>h)"(?P<n2>\w+), origin) print(r.group()) # 获取匹配到的所有结果 hello print(r.groups()) # 获取模型中匹配到的分组结果 ('h', 'ello') print(r.groupdict()) # 获取模型中匹配到的分组中所有执行了key的组 {} print(ret.group()) # 获取匹配到的所有结果 hello print(ret.groups()) # 获取模型中匹配到的分组结果 ('h', 'ello') print(ret.groupdict()) # 获取模型中匹配到的分组中所有执行了key的组 {'n1': 'h', 'n2': 'ello'} # re.search() 用法与match相同,但是是浏览全部字符串,匹配第一个符合规则的字符串 # re.findall() 将匹配到的所有内容都放置在一个列表中 # re.split() # re.sub()
import re # findall n = re.findall("\d+\w\d+", "a2b3c4d5") print(n) # ['2b3', '4d5'] # 无分组 origin = "hello xinmin bcd xinmin lge xin acd 11111" r = re.findall("x\w+", origin) r1 = re.findall("x(\w+)", origin) print(r) # ['xinmin', 'xinmin', 'xin'] print(r) # ['inmin', 'inmin', 'in'] # split 分割 origin = "hello xinmin bcd xinmin lge xin acd 2451" origin.spilt('x') n = re.split('x\w+', origin, 1) n1 = re.split('x\w+', origin) print(n) # ['hello', 'bcd xinmin lge xin acd 2451'] print(n1) # ['hello', 'bcd', 'lge', 'acd 2451']
-
计算器
图片.png
- sub :替换
origin = "dsdfgdsfewsdf3455467dsfds455677y988dfd" new_str = re.sub("\d+", "kkk', origin) print(new_str)
- python使用正则
网友评论