- 正则表达式
- 普通字符:
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']
- 普通字符:
- 正则补充
- 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']
-
计算器
- sub :替换
origin = "dsdfgdsfewsdf3455467dsfds455677y988dfd" new_str = re.sub("\d+", "kkk', origin) print(new_str)
- python使用正则
python入门 第十一天 正则
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...