匹配分组相关正则表达式

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

【(分组数据):分组数是从左到右的方式进行分配的,最左边的是第一个分组,依次类推】

示例1:|

需求:在列表中["apple", "banana", "orange", "pear"],匹配apple和pear

import re# 水果列表
fruit_list = ["apple", "banana", "orange", "pear"]# 遍历数据
for value in fruit_list:# |    匹配左右任意一个表达式match_obj = re.match("apple|pear", value)if match_obj:print("%s是我想要的" % match_obj.group())else:print("%s不是我要的" % value)

执行结果:

示例2:( )

需求:匹配出163、126、qq等邮箱

import rematch_obj = re.match("[a-zA-Z0-9_]{4,20}@(163|126|qq|sina|yahoo)\.com", "hello@163.com")  #  对.进行了转义
if match_obj:print(match_obj.group())  #  print(match_obj.group(0))  和前面效果是一样的# 获取分组数据print(match_obj.group(1))
else:print("匹配失败")

执行结果:

需求: 匹配qq:10567这样的数据,提取出来qq文字和qq号码

import rematch_obj = re.match("(qq):([1-9]\d{4,10})", "qq:10567")if match_obj:print(match_obj.group())# 分组:默认是1一个分组,多个分组从左到右依次加1print(match_obj.group(1))# 提取第二个分组数据print(match_obj.group(2))
else:print("匹配失败")

执行结果:

示例3:\num

需求:匹配出<html>hh</html>

import rematch_obj = re.match("<[a-zA-Z1-6]+>.*</[a-zA-Z1-6]+>", "<html>hh</div>")if match_obj:print(match_obj.group())
else:print("匹配失败")match_obj = re.match("<([a-zA-Z1-6]+)>.*</\\1>", "<html>hh</html>")if match_obj:print(match_obj.group())
else:print("匹配失败")

运行结果:

需求:匹配出<html><h1>www.itcast.cn</h1></html>

import rematch_obj = re.match("<([a-zA-Z1-6]+)><([a-zA-Z1-6]+)>.*</\\2></\\1>", "<html><h1>www.itcast.cn</h1></html>")  #  顺序要对应上if match_obj:print(match_obj.group())
else:print("匹配失败")match_obj2 = re.match("<([a-zA-Z1-6]+)><([a-zA-Z1-6]+)>.*</\\1></\\2>", "<html><h1>www.itcast.cn</h1></html>")if match_obj2:print(match_obj2.group())
else:print("匹配失败")

运行结果:

示例4:(?P<name>) (?P=name)

需求:匹配出<html><h1>www.itcast.cn</h1></html>

import rematch_obj = re.match("<(?P<name1>[a-zA-Z1-6]+)><(?P<name2>[a-zA-Z1-6]+)>.*</(?P=name2)></(?P=name1)>", "<html><h1>www.itcast.cn</h1></html>")  #  名字是可以随便起的,但是顺序还是要对应的if match_obj:print(match_obj.group())
else:print("匹配失败")match_obj2 = re.match("<(?P<name1>[a-zA-Z1-6]+)><(?P<name2>[a-zA-Z1-6]+)>.*</(?P=name1)></(?P=name2)>", "<html><h1>www.itcast.cn</h1></html>")if match_obj2:print(match_obj2.group())
else:print("匹配失败")

运行结果:

正则表达式匹配分组(|、(ab)、\num、(?P<name>)(?P=name))相关推荐

  1. list 分组_「正则表达式」 匹配分组

    1. 匹配分组相关正则表达式 代码功能|匹配左右任意一个表达式(ab)将括号中字符作为一个分组um引用分组num匹配到的字符串(?P)分组起别名(?P=name)引用别名为name分组匹配到的字符串 ...

  2. JS正则表达式的分组匹配

    原文地址: JS正则表达式的分组匹配 什么是分组 通俗来说,我理解的分组就是在正则表达式中用()包起来的内容代表了一个分组,像这样的: var reg = /(\d{2})/ reg.test('12 ...

  3. JavaScript正则表达式的分组匹配详解

    1,分组 下面的正则表达式可以匹配kidkidkid: const reg = /kidkidkid/ 而另一种更优雅的写法是: const reg = /(kid){3}/ 这里由圆括号包裹的一个小 ...

  4. python-正则表达式-单字符匹配_多字符匹配_匹配分组_命名分组

    正则表达式 正则表达式定义和作用 正则表达式的定义: 是约束字符串匹配某种形式的规则 正则表达式的作用: 检测某个字符串是否符合规则 提取网页字符串中想要的数据 正则表达式所包含的元素种类 正则表达式 ...

  5. java正则任意字符_正则表达式匹配任意字符(包括换行符)的写法

    今天在Java中想使用正则表达式来获取一段文本中的任意字符.于是很随意得就写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本.于是查了一下手册,才发现正则表达式中,". ...

  6. Python中使用正则表达式以及正则表达式匹配规则

    前排提要: 本博客介绍在Python下使用正则表达式从给定的字符串中获取到想要的字符串. 1 导库 import re 2 使用模板 re_pattern = re.compile(pattern, ...

  7. python正则表达式入门_python入门_常见正则表达式匹配

    made_in_miliLV的主页.png - 正则表达式:正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配.在开发的使用场景 - 例如:匹配url等等 本文中,对正则 ...

  8. 正则表达式匹配也可以简单快速(下:实现部分)

    转载请注明译者: phylips@bmy 出处: http://duanple.blog.163.com/blog/static/7097176720099402916150/   实现 Thomps ...

  9. 剑指offer:面试题19. 正则表达式匹配

    题目:正则表达式匹配 请实现一个函数用来匹配包含'. '和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次).在本题中,匹配是指字符串的所有字符匹 ...

最新文章

  1. 能否把指针变量本身传递给一个函数?
  2. slackware安装mysql_slackware系统安装二
  3. 垃圾回收②---相关概念
  4. mysql 备份_shell脚本实现MySQL全量备份+异地备份
  5. 阿里云河源数据中心正式开服 疫情期间曾2小时扩容1万台云服务器
  6. java中的多对多关系解析_Java中多对多映射关系
  7. TCP_IP Sockets编程C语言实现第2版 源码下载
  8. 用户空间缺页异常pte_handle_fault()分析--(上)
  9. Java开发人员简历做假的常见情况
  10. 显卡dos测试软件,A+N卡测试说明_早期显卡DOS版本
  11. 宽度优先算法求解八数码问题
  12. 爬虫笔记19:模拟登录jerry的QQ空间(selenium获取cookie的应用案例)、怎么保存cookie
  13. 打造自己的HelloDrone 无人机APP过程《3》
  14. VUE项目中高德地图选择坐标和输入搜索功能
  15. 【 ST-LINK\ ST-LINK Utility下载,烧录,批处理操作\命令行】
  16. 从键盘上输入一位整数,当输入1~7时,显示对应的英文星期名称的缩写。
  17. 基于微信小程序的电影院买票选座系统
  18. 计算机网络原理 - 应用层
  19. 计算机使用的显示器有哪些重要参数,电脑显示器知识:显示器参数主要看什么?(2)...
  20. OD 的 Run Trace

热门文章

  1. 一流科技完成5000万人民币A轮融资,高瓴创投独家领投
  2. 平头哥玄铁处理器Linux新版本,5大亮点速览
  3. 2097352GB地图数据,AI技术酷炫渲染,《微软飞行模拟器》游戏即将上线
  4. 吴甘沙:天外飞“厕”、红绿灯消失,未来无人驾驶将被重新定义 | AI ProCon 2019
  5. 总奖金300万的AI Challenger 2018进入第二阶段,决赛在即!
  6. 假期快乐!超强面试资源等你Pick,先收藏!
  7. 一文详解启发式对话中的知识管理 | 公开课笔记
  8. 别盲目调参!深度学习要先找到最佳策略
  9. 干货 | 成为一名推荐系统工程师永远都不晚
  10. 论一枚数据科学家的自我修养