当前位置: 首页 > news >正文

【语法进阶】匹配分组

1. |:匹配左右任意一个表达式 --常用

import re
res = re.match("abc|def", "abcdefg")
print(res.group())res = re.match("\s|\d", " 1abc!")    \s空白    \S非空白
print(res.group())

2. (ab):将括号中字符作为一个分组 --常用

# 需求:匹配邮箱
# res = re.match("\w*@qq\.com", "123@qq.com")
res = re.match("\w*@qq\.com|\w*@126\.com|\w*@163\.com", "123@qq.com")
# 简化写法:
res = re.match("\w*@(qq|126|163)\.com", "123@qq.com")
print(res.group())

3. \num:引用分组num匹配到的字符串,经常在标签中被使用

import re
res = re.match('<\w*>\w*</\w*>', '<html>login</html>')
print(res.group())       # <html>login</html>
# res = re.match('<(\w*)>\w*</\1>', '<html>login</html>')
# print(res.group())     # 报错,反斜杠的问题,加r原生字符串取消转义
res = re.match(r'<(\w*)>\w*</\1>', '<html>login</html>')
print(res.group())       # <html>login</html>
# res = re.match('<(\w*)>\w*</\\1>','<html>login</html>')
# print(res.group())     # <html>login</html>
# 注意: 前面的<>里面是什么,后面的<>就是是什么
# res = re.match('<(\w*)>\w*</\\1>', '<html>login</htmler>')
# print(res.group())     # 报错res = re.match('<\w*><\w*>.*</\w*></\w*>', '<html><body>登录页面</body></html>')
print(res.group())
res = re.match(r'<(\w*)><(\w*)>.*</\2></\1>', '<html><body>登录页面</body></html>')
# 注意顺序,从外到内(从前到后)排序,编号从一开始,外面是1组,里面是2组
print(res.group())

4. (?P<name>):分组起别名 --扩展
5. (?p=name):引用别名为name分组匹配到的字符串 --扩展

import re
res = re.match(r'<(?P<l1>\w*)><(?P<l2>\w*)>.*</(?P=l2)></(?P=l1)>', '<html><body>登录页面</body></html>')
print(res.group())      # <html><body>登录页面</body></html># 需求:匹配网址
# 要求:前缀:www,后缀:.com/.cn/.net/.org
import re
li = ['www.baidu.com', 'www.taobao.com', 'www.jd.con', 'www.abc.n', "www.python.org"]
res = re.match(r'www(\.)\w*\1(com|cn|com|n)', 'www.baidu.com')
print(res.group())
for i in li:res = re.match("www\.\w*\.(com|cn|net|org)", i)  #斜杠把点变成现实文字的点# 判断if res:print(res.group())else:print(f'{i}网址有误哦')#print(i)

http://www.dtcms.com/a/393327.html

相关文章:

  • 猫头虎AI开源项目分享:通过压缩-感知-扩展来改善RAG应用延迟的高效框架:REFRAG,速度快、质量高
  • 某音a_bogus纯算法192位研究分析
  • RAG vs 长文本模型:技术原理、适用场景与选型指南
  • PowerBI自定义函数
  • FreeRTOS——信号量,互斥锁,临界区,延时
  • 第三章 模型评估与优化技巧
  • 3.Spring AI的工具调用
  • 如何高效记单词之:学会想像——从字母W聊起
  • Python之Excel操作三:读取Excel文件中的某一列
  • 计网基础知识
  • 【CSP-J模拟题 】 附详细讲解
  • FPGA内实现FIR 抽取滤波器设计
  • 【proteus绿灯5s红灯10s三数码管数字切换电路】2022-12-12
  • 团队任务分配管理软件平台对比测评
  • 集成学习智慧:为什么Bagging(随机森林)和Boosting(XGBoost)效果那么好?
  • 计算机英语缩写
  • 国轩高科校招社招网申线上测评笔试题库结构说明书(适用于研发/工程/职能全部岗位)
  • 3.2.10 虚拟内存管理 (答案见原书 P238)
  • 算法 --- BFS 解决最短路问题
  • Photoshop蒙版的操作
  • cocos shader敌人受到攻击改变颜色
  • cd论文精读
  • USBD_malloc 禁止替换成 malloc 函数
  • 功能测试与测试用例设计方法详解
  • AXI DMA
  • 1:1复刻真实场景,机器人训练不再“纸上谈兵”
  • CMake快速上手:编译、构建与变量管理(包含示例)
  • vscode配置C/C++教程(含常见问题)
  • F021 五种推荐算法之美食外卖推荐可视化系统vue+flask
  • C++学习记录(10)模板进阶