2.1 python文本处理-正则表达式

python正则模块介绍

标准库模块 re

模块方法

# 将正则表达式样式编译成一个正则对象。一般用于多次使用正则对象的场景

re.compile(pattern)

# 扫描string字符串并查找符合patten样式的第一个位置,返回对应的 Match 结果,否则返回 None

re.search(patten, string)

# 如果 string 开头的零个或多个字符与正则表达式 pattern 匹配,返回对应的 Match 结果,否则返回 None

re.match(patten, string)

# 整个string余表达式patten样式匹配,返回对应的 Match 结果,否则返回 None

re.fullmatch(patten, string)

match结果指的是返回的Match对象,Match对象的group方法可以取出匹配到的结果

正则表达式语法

^: 指开头

$:指结尾

+:表示匹配一次或多次

?:表示匹配0或1次

*:表示匹配0或任意次

{n}:表示匹配指定次数

{m,}:至少匹配m次

{m, n}:匹配m至n次

.:匹配除‘\n’以外的任意单个字符

\d: 数字

\w:包括下划线的任何单词字符,等价于[a-zA-Z0-9_]

\W:非单词字符

\s:空白字符,包括空格、制表符、换页符等

\b:单词边界,例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er

\B:非单词边界

a|b:匹配a或b

(patten):匹配并获取结果

(?:patten):匹配但不获取结果

(?P<name>patten):匹配并获取结果,并命名为name,便于match.group进行获取查询

示例

compile + search

>>> import re
>>> pattern = "\d+"
>>> obj = re.compile(pattern)
>>> res = obj.search("a12b13c14")
>>> res
<re.Match object; span=(1, 3), match='12'>

match

>>> re.match("\w\d+", "a12b13c14")
<re.Match object; span=(0, 3), match='a12'>

>>> re.match("\d+", "a12b13c14")

None
>>> 

group

>>> res = re.match("(\w+):(\d+)", "bob:3,allen:10")
>>> res.group
<built-in method group of re.Match object at 0x1071b6780>

>>> res.group(0)
'bob:3'
>>> res.group(1)
'bob'
>>> res.group(2)
'3'

常见的正则表达式写法

正则表达式场景
\d{4}-\d{2}-\d{2}形如 YYYY-MM-DD样式的日期格式
^[A-Z][a-z ]+

以大写字母开头,且单词其他部分为小写

[a-zA-Z]匹配英文字母

^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$

email
[\u2E80-\u9FFF]汉字

参考文档

正则表达式手册

re --- 正则表达式操作 — Python 3.12.1 文档

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

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

相关文章

数据库结构文档生成(通过PDMReader)

将数据库的表结构生成数据库结构文档有三种方法&#xff1a; 1、通过 PDMReader生成文档&#xff1b; 2、使用EZDML 工具生成&#xff08;下载地址&#xff1a;EZDML - 下载&#xff09;&#xff1b; 3、使用SCREW 插件&#xff0c;通过java代码生成。 本文章先介绍通过PDM…

Python入门0基础学习笔记

1.编程之前 在编写代码之前&#xff0c;还有两件事需要做&#xff1a; 安装 Python 解释器&#xff1a;计算机是没法直接读懂 Python 代码的&#xff0c;需要一个解释器作为中间的翻译&#xff0c;把代码转换成字节码之后再执行。 Python 是翻译一行执行一行。一般说的安装 …

kafka为什么快

消息发送 1、批量发送: Kafka 通过将多个消息打包成一个批次&#xff0c;减少了网络传输和磁盘写入的次数&#xff0c;从而提高了消息的吞吐量和传输效率。 2、异步发送: 生产者可以异步发送消息&#xff0c;不必等待每个消息的确认&#xff0c;这大大提高了消息发送的效2.率 …

Spring Boot源码解读与原理分析

解读和分析Spring Boot的源码与原理是一项深入且复杂的任务&#xff0c;主要因为Spring Boot是一个庞大的项目&#xff0c;涵盖了众多的Spring框架特性。以下是一些关键点&#xff0c;可以帮助你理解Spring Boot的工作原理&#xff1a; 1. 起点&#xff1a;SpringApplication …

【开源】基于JAVA语言的康复中心管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员模块 三、系统展示四、核心代码4.1 查询康复护理4.2 新增康复训练4.3 查询房间4.4 查询来访4.5 新增用药 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的康复中…

Java:List转换List

我们经常会遇到泛型转换泛型的时候&#xff0c;今天我们就介绍下使用java1.8和普通转换&#xff0c;其中测试数据自行添加 Data public class Study1{private String no; // 学号private String name; // 姓名 }Data public class Study2{private String no; // …

css3 2D与3D转换

css3 2D与3D转换 前言2D变形旋转变形 rotate()transform-origin属性 缩放变形 scale()斜切变形 skew()位移变形 translate() 3D变形3D旋转 rotateX() | rotateY()perspective属性 空间移动 制作一个正方体结语 前言 网页设计不再局限于平面&#xff0c;而是充满了立体感和动态…

Learning Vision from Models Rivals Learning Vision from Data

Learning Vision from Models Rivals Learning Vision from Data 论文&#xff1a;https://arxiv.org/abs/2312.17742 TL; DR&#xff1a;只使用机造数据进行训练达到了与真实数据训练相当的效果。本文提出了 SynCLR。首先使用 LLM 来根据视觉概念词生成图像描述&#xff0c;再…

WEB 3D技术 three.js 点光源

本文的话 我们来设置一下点光源 点光源其实最直观的就是可以做萤火虫 也可以做星光 点点的效果 我们可以直接在官网中搜索 Pointlight 大家可以在官网这里看一下 其实 SpotLight 聚关灯中的属性 Pointlight 点光源也有的 我们先编写代码如下 import ./style.css import * a…

Codeforces Round 768 (Div. 1) D. Flipping Range(思维题 等价类性质 dp)

题目 思路来源 官方题解 洛谷题解 题解 可操作的最短区间长度肯定是gcd&#xff0c;记为g&#xff0c;然后考虑如何dp 考虑g个等价类&#xff0c;每个等价类i,ig,i2*g,... 每次翻转长度为g的区间&#xff0c;会同时影响到g个等价类总的翻转的奇偶性&#xff0c; 性质一&…

SpringCloud.04.熔断器Hystrix( Spring Cloud Alibaba 熔断(Sentinel))

目录 熔断器概述 使用Sentinel工具 什么是Sentinel 微服务集成Sentinel 配置provider文件&#xff0c;在里面加入有关控制台的配置 实现一个接口的限流 基本概念 重要功能 Sentinel规则 流控规则 简单配置 配置流控模式 配置流控效果 降级规则 SentinelResource…

模拟器安装XPosed框架教程

Xposed框架下载&#xff08;搞不懂就先看完本篇教程再下载&#xff09; 99%的情况只需要下载里面的XPosed鸭就行了 安卓8及以下XPosed框架 - 多开鸭模拟器安装XPosed框架图文视频教程 关于本站XPosed框架的说明 XPosed框架(即XP框架)&#xff0c;由rovo89开发。适用于安卓7以…

把模板作为元函数参数传递。

C模板元编程是一种典型的函数式编程&#xff0c;函数在整个编程体系中处于核心的地位。 这里的函数与一般C程序中定义的函数有所区别&#xff0c;其更接近数学意义上的函 数——是无副作用的映射或变换&#xff1a;在输入相同的前提下&#xff0c;多次调用同一个函数&…

Rsync远程同步,删除大量文件

目录 什么是文本传输&#xff1f; 文件传输工具&#xff1a; Rsync工具介绍 rsync的作用 命令格式 实验配置rsync源服务器 先检查是否有rsync工具 建立/etc/rsyncd.conf 配置文件 为备份账户创建数据文件 给数据文件添加权限 保证所有用户对源目录/var/www/html 都有读…

C练习——杨辉三角

题目&#xff1a; 打印近似杨辉三角&#xff0c;行数n自选 百度找的杨辉三角&#xff0c;参考一下&#xff1a; 解析&#xff1a; 把它的全部元素左对齐&#xff0c;就可以看成近似杨辉三角的样子 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 …… 每个数等于它上方两数…

CMake tasks.json launch.json

hehedalinux:~/Linux/cmake/cmakeClass$ tree . ├── CMakeLists.txt ├── include │ ├── Gun.h │ └── Soldier.h ├── main.cpp └── src├── Gun.cpp└── Soldier.cpp2 directories, 6 files hehedalinux:~/Linux/cmake/cmakeClass$ launch.json&am…

Flutter 小技巧之升级适配 Xcode15

美好的 2024 从「适配」开始&#xff0c;按照苹果的尿性&#xff0c;2024 春季开始大家将不得使用 Xcode15 来构建 App &#xff0c;另外根据《2024 的 iOS 的隐私清单》 要求&#xff0c;使用 Flutter 的开发者是无法逃避适配 Xcode15 更新的命运。 另外&#xff0c;众所周知…

8-docker删除两个相同IMAGE ID镜像报错的处理方案

1.问题描述 docker在删除两个相同IMAGE ID镜像(E.g:docker rmi 605c77e624dd)时,会有如下报错: Error response from daemon: conflict: unable to delete 605c77e624dd (must be forced) - image is referenced in multiple repositories [root@centos79 ~]# docker imag…

K 个一组翻转链表(链表反转,固定长度反转)(困难)

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你链表的头节点head&#xff0c;每k个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是k的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。…

优先级队列(Priority Queue)

文章目录 优先级队列&#xff08;Priority Queue&#xff09;实现方式基于数组实现基于堆实现方法实现offer(E value)poll()peek()isEmpty()isFull() 优先级队列的实现细节 优先级队列&#xff08;Priority Queue&#xff09; 优先级队列是一种特殊的队列&#xff0c;其中的元素…