美文网首页
正则表达式四---分组匹配

正则表达式四---分组匹配

作者: IT的咸鱼 | 来源:发表于2018-10-19 19:06 被阅读0次

    正则表达式如下:

    first(字符) desc(功能)
    匹配左右任意一个表达式
    (ab) 将括号中字符作为一个分组
    \num 引用分组num匹配到的字符串
    (?P<name>) 分组起别名
    (?P=name) 引用别名为name分组匹配到的字符串

    | 的用法

    • 匹配1到100之间的数字
    ret = re.match("[1-9]?\d$|100","8")
    print(ret.group())  # 8
    
    ret = re.match("[1-9]?\d$|100","78")
    print(ret.group())  # 78
    
    ret = re.match("[1-9]?\d$|100","08")
    # print(ret.group())  # 不是0-100之间
    
    ret = re.match("[1-9]?\d$|100","100")
    print(ret.group())  # 100
    

    ( )的用法

    • 匹配出163、sina、qq邮箱
    # -*- coding:utf-8 -*-
    import re
    
    emails = ['ljhyigehaoren@sina.com','22958081@qq.com','asncswncl@qq.cn','asncswncl@163.cn',]
    
    for i in emails:
        ret = re.match('[a-z0-9]+@(sina|qq|163)\.(com|cn)',i)
        if ret:
            print(ret,i)
    

    \num 的用法

    ret = re.match('<(\w+)>\d+<\\1>','<html>123456<html>')
    # ret = re.match(r'<(\w+)>\d+<\1>','<html>123456<html>')
    print(ret.group(),ret.groups())
    

    (?P<name>)和(?P=name)的用法

    ret = re.findall('<(?P<name1>\w+)>\d+<(?P=name1)>','<html>123456<html>')
    # ret = re.match(r'<(\w+)>\d+<\1>','<html>123456<html>')
    print(ret)
    

    相关文章

      网友评论

          本文标题:正则表达式四---分组匹配

          本文链接:https://www.haomeiwen.com/subject/imajzftx.html