python中正则模块

news/2025/1/15 15:48:07/文章来源:https://www.cnblogs.com/lsixu/p/18399737
import re# 1. findall()  匹配字符串中所有符合正则的字符串,并返回一个列表
result_list = re.findall(r"\d+", "我的手机号是13812345678,我的QQ号是456789123")
print(result_list, type(result_list))  # ['13812345678', '456789123'] <class 'list'>
print("==============")# 2. finditer()  匹配字符串中所有符合正则的字符串,并返回一个迭代器
result_iter = re.finditer(r"\d+", "我的手机号是13812345678,我的QQ号是456789123")
for match in result_iter:print(match, type(match))  # Match 对象  从Match对象中获取数据需要使用group()方法print(match.group())  # 13812345678 456789123print("==============")
# 3. search()  匹配字符串中第一个符合正则的字符串,并返回一个Match对象
result_match = re.search(r"\d+", "我的手机号是13812345678,我的QQ号是456789123")
print(result_match.group(), type(result_match))  # Match 对象  <class 're.Match'>print("==============")
# 4. match()  从头开始匹配,如果字符串开始位置匹配正则表达式,返回一个Match对象,否则返回None
# 可以认为在正则的前面加上了  ^
result_match = re.match(r"\d+", "我的手机号是13812345678,我的QQ号是456789123")
try:print(result_match.group(), type(result_match))  # 13812345678 <class 're.Match'>
except Exception:print("NoneType类型中没有group()方法")print("================")
# 5. 预加载正则表达式
obj = re.compile(r"\d+")
result_iter = obj.finditer("我的手机号是13812345678,我的QQ号是456789123")
for match in result_iter:print(match.group())  # 13812345678 456789123print("================")
# 6. 惰性匹配
s = """
<div class='jay'><span id='1'>抽烟</span></div>
<div class='jj'><span id='2'>喝酒</span></div>
<div class='jolin'><span id='3'>烫头</span></div>
<div class='sylar'><span id='4'>阿巴阿巴</span></div>
<div class='tory'><span id='5'>???</span></div>
"""obj = re.compile(r"<div class='.*?'><span id='(?P<id>.*?)'>(?P<content>.*?)</span></div>", re.S)
result_iter = obj.finditer(s)
for match in result_iter:print(match.group(2))  # 抽烟 喝酒 烫头 阿巴阿巴 ???print(match.group("id"))# 构建为字典的格式print(match.groupdict())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/792933.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode Hot100刷题记录-21. 合并两个有序链表

题目描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。需要知道的pre-knowledge: list1和list2起初可直接代表两个链表的头节点,无需用另外的变量比如 current 来表示头节点。 思路:准备一个虚拟节点,指向合并完成新链…

Playwright 源码 BrowserType

playwright-java 的 Browser、BrowserContext、Page 挺好理解的,唯独这厮,就有一丢丢 ……playwright-java 的 Browser、BrowserContext、Page 挺好理解的,唯独这厮,就有一丢丢 ……package com.microsoft.playwright;/*** BrowserType provides methods to launch a speci…

【优技教育】Oracle 19c OCP 082题库(第14题)- 2024年修正版

【优技教育】Oracle 19c OCP 082题库(Q 14题)- 2024年修正版 考试科目:1Z0-082 考试题量:90 通过分数:60% 考试时间:150min 本文为(CUUG 原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。 原文地址:http://www.cuug.com.cn/ocp/082kaoshitiku/3818373495…

安装了跑神经网络的环境,所遇到的问题及解惑1

cuda:12.2 cudnn:8.9.7 tensorflow库:2.17.0(python310_test) {9:37}/home/code/python ➭ python mnist_test.py 2024-09-06 09:39:29.473128: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to registe…

记一次阿里云搭建K8S在恢复镜像快照之后etcd一个节点无法启动问题

环境查看 系统环境# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) # uname -a Linux CentOS7K8SMaster01005101 3.10.0-1160.114.2.el7.x86_64 #1 SMP Wed Mar 20 15:54:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux软件环境 # kubectl version Client Vers…

无风扇嵌入式工控机的技术优势

无风扇嵌入式工控机专为优先考虑低维护和可靠性的应用而设计。这些工控机是不间断性能至关重要的行业的完美选择,因为它们消除了与风扇相关的故障风险。通过消除对风扇的需求,无风扇工控机提供了无缝且可靠的性能,不会受到潜在风扇故障或故障的影响。此外,无风扇嵌入式工控…

哎呀,当时怎么没有想到

在我们的测试工作中,是不是经常遇到这样的情形,发生了线上问题,产品、研发或者测试同学一拍脑袋:当时怎么没有想到,怎么给漏掉了呢?明明是一个非常简单的事情,用大拇指都能想到的验证场景,为何当时就漏测了呢?但实际情况是,逃逸到线上的缺陷,疑难杂症式的极端异常的…

Optuna发布 4.0 重大更新:多目标TPESampler自动化超参数优化速度提升显著

Optuna这个备受欢迎的超参数优化框架在近期发布了其第四个主要版本。自2018年首次亮相以来,Optuna不断发展,现已成为机器学习领域的重要工具。其用户社区持续壮大,目前已达到以下里程碑:10,000+ GitHub星标 每月300万+ 下载量 16,000+ 代码库使用 5,000+ 论文引用 18,000+ …

揭秘如何通过淘宝API接口高效获取商品数据

https://img2024.cnblogs.com/blog/3506472/202409/3506472-20240906095413951-921785923.png在电子商务的世界里,数据就是力量。对于淘宝卖家来说,掌握店铺商品的全面数据是优化运营策略、提升销售业绩的关键。淘宝API,作为连接淘宝平台与外部应用的桥梁,提供了一键获取店…

常用协议

常用协议和报文解读常用协议 默认网关 实现不同网络之间的路由转发ARP 地址解析协议,根据IP地址获取MAC地址,还能检测地址是否有重复 广播ARP报文寻找目标IP的MAC地址主机1通过发送ARP Request报文获取主机2的MAC地址 ​ 由于不知道目的MAC地址,因此ARP Request报文內目的MA…

测试博客园_network

1. 一级标题新建文件 添加type属性,及值 基于tpye的值创建模板 更新属性 更新网络版试试

IPv6协议——互联网通信协议第六版

引言IPv6是互联网升级演进的必然趋势、网络技术创新的重要方向、网络强国建设的基础支撑。近些年,随着我国大力推动IPv6规模部署和应用,目前中国的IPv6渗透率已超过70%。 对于车载以太网来说,目前IPv4是车载IP通信的主流协议,但随着车辆的智能化、网联化程度不断提高,IPv6…