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

正则表达式分组匹配

作者: 杜大个 | 来源:发表于2018-09-06 09:00 被阅读0次

    正则表达式如下:
    first desc
    | 匹配左右任意一个表达式
    (ab) 将括号中字符作为一个分组
    \num 引用分组num匹配到的字符串
    (?P<name>) 分组起别名
    (?P=name) 引用别名为name分组匹配到的字符串
    示例1:| 的用法

    匹配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

    示例2:( )

    需求:匹配出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/kjetgftx.html