【Python】正则表达式语法入门

news2024/12/27 10:29:09

目录

正则表达式

1、点:匹配所有字符

2、星号:重复匹配任意次

3、加号:重复匹配多次

4、花括号:匹配指定次数

5、贪婪模式和非贪婪模式

6、反斜杠:对元字符的转义

7、方括号:匹配几个字符之一

8、开始、结尾位置和单行、多行模式

9、圆括号:组选择


正则表达式

应用场景:文本处理提取信息

关键在于:如何正确地使用正则表达式的语法

验证网站:https://regex101.com/

字符分类:

  • 普通字符:没有特殊含义,直接用来匹配
  • 特殊字符:又称元字符,有特殊含义,不是直接用来匹配

1、点:匹配所有字符

“.”:表示要匹配除了 换行符 以外的 任何单个字符。

content = '''ive是芙
izone不是芙'''

import re
# r禁止了对字符的转义
p = re.compile(r'.芙')
# findall查找符合匹配条件的文本
for one in p.findall(content):
    # <class 'str'>
    print(type(one))
    print(one)

查看调用 compile 后 p 的类型:

# <class 're.Pattern'>
# 从而才能调用该类中的各种方法
print(type(p))

2、星号:重复匹配任意次

点默认只匹配一个字符,而搭配使用星号等可以在此基础上匹配多个字符。

“*”:表示可以匹配 任意次数,包括 0 次。

  • “*” 搭配 “.” 来使用即 “.*”,表示要匹配指定字符前或后的所有字符,包括该指定字符。
  • 比如:“,.*” 表示匹配中文逗号后的任何字符任意次数。

3、加号:重复匹配多次

“+”:表示可以匹配 任意次数,但不包括 0 次。

  • 与 “*” 的区别就是一个包含 0 次而另一个不包含

4、花括号:匹配指定次数

“{}”:表示匹配 位于 “{}” 前面 的一个字符 指定次数。

  • c{min, max}:c 是匹配的字符,min 是最少出现次数,max 是最多出现次数
  • c{num}:直接指定需要匹配 num 次

匹配电话号码:\d{11},\d 表示数字。

5、贪婪模式和非贪婪模式

“*”、“+”、“?” 都是 贪婪 的,它们会尽可能多地去匹配内容。

<html><head><title>Title</title></head></html>

加上 “?” 变为 非贪婪 模式:

分别匹配到了多个对象:

6、反斜杠:对元字符的转义

“\” 将元字符转义为普通字符。

“\” 后面接一些字符,还能表示匹配 某种类型 的一个字符。

  • \d:匹配 0-9 之间任意一个数字字符,等价于表达式 [0-9]
  • \D:匹配任意一个不是 0-9 之间的数字字符,等价于表达式 [^0-9]
  • \s:匹配任意一个空白字符,包括 空格、tab、换行符 等,等价于表达式 [\t\n\r\f\v]
  • \S:匹配任意一个非空白字符,等价于表达式 [^\t\n\r\f\v]
  • \w:匹配任意一个文字字符,包括大小写字母、数字、下划线,等价于表达式 [a-zA-Z0-9]
  • \W:匹配任意一个非文字字符,等价于表达式 [^a-zA-Z0-9]

\w 缺省情况也包括 Unicode 文字字符,如果指定 ASCII 码标记,则只包括 ASCII 字母。

  • re.compile(r'.芙', re.A)

7、方括号:匹配几个字符之一

  • 1[35]\d{9}:表示几个字符
  • 1[3-5]\d{9}:“-” 表示一个范围

更进一步:

  • “.” 在 “[]” 里面变为普通字符,不再是元字符
  • “^” 在“[]” 里面表示 “非” 的概念

8、开始、结尾位置和单行、多行模式

“^” 表示只需要处于 每行开始位置 的匹配内容。

  • 单行模式下和多行模式下的匹配结果不一样
  • 多行模式:re.compile(r'.芙', re.M)

“$” 表示只需要处于 每行结尾位置 的匹配内容。


 

9、圆括号:组选择

组就是把正则表达式匹配的内容里面其中的某些部分标记为某个组。

我们可以在正则表达式中标记多个组。

匹配结果为多个组:

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

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

相关文章

计算机科学与技术基础课程复习

文章目录 大学计算机基础 大学计算机基础 国防科技大学慕课 从算牌开始&#xff0c;记录数据 数据的计算规则 帕斯卡的加法器 计算自动化 图灵的梦想 乘10运算的图灵机 图灵记 根据状态和记录&#xff1b;根据控制器规则&#xff0c;从起始状态到结束状态&#xff0c;从…

less 笔记

1 margin-left 之后有 margin: 0 导致margin-left 无效 --> 不能重复定义 .btn-group {margin-left: calc(100% - 350px);display: inline-block;margin: 0; // 重复定义 导致上面 没有效果padding: 0; } 2 一定要F12检查元素 看各个div的宽度是否太长 导致靠左靠右 计算不…

5.1 Python高阶特性之递归函数

基本概念&#xff1a; 如果一个函数在内部调用自身本身&#xff0c;这个函数就是递归函数使用递归函数的优点是逻辑简单清晰&#xff0c;缺点是递归过深会导致栈溢出。【注意】 递归函数定义时&#xff0c; 一定存在某个条件能结束执行&#xff0c; 递归最重要的就是需要避免死…

免费使用Elasticsearch官网15天

注册登录 点击创建索引时候会给你展示一个密钥。这个密钥就是你的用户密码 如下图 你的服务地址大致样式如下 https://huihai.es.us-central1.gcp.cloud.es.io 这里需要你输入用户密码,上面图4&#xff08;图中&#xff09;&#xff0c;下载时候的用户密码 登录完成 这样就能…

【Python爬虫】CSDN热榜文章热门词汇分析

&#x1f4da; 前言 在信息时代&#xff0c;我们经常需要从大量的文章中获取有用的信息。本文将介绍如何使用Python进行数据处理&#xff0c;获取热榜文章的标题和标签&#xff0c;并使用jieba库进行数据分析。通过本文的学习&#xff0c;你将掌握获取和分析热榜文章数据的技巧…

[英语单词] components;

*[kәm’pәunәnt] n. 元件, 组件, 成分 a. 组成的, 构成的 【计】 组件 【化】 组分 【医】 成分; 组元(神经元组) 有很多地方使用这个单词&#xff0c;在组成整体时&#xff0c;作为单位一内的占有比率。那为什么不用portion&#xff1f; 这样每一个组成部分都是一个compon…

使用 YOLOv8 和 Streamlit 构建实时对象检测和跟踪应用程序:第 1 部分-介绍和设置

示例:图像上的对象检测 介绍 实时视频中的目标检测和跟踪是计算机视觉的一个重要领域,在监控、汽车和机器人等各个领域都有广泛的应用。 由于需要能够识别和跟踪对象、确定其位置并对它们进行实时分类的自动化系统,对视频帧中的实时对象检测和跟踪的需求日益增加。 在这…

疫情防控【并查集,离线查询,依次删除节点逆向转化为逐渐添上节点】

5 5 3 1 2 1 3 1 5 2 5 3 4 4 3 1 3 1 4 2 3 5 3 3 4 2 3 3 5 1 3 2 3 2 5 3 4输出样例: 1 2 3#include <bits/stdc.h> using namespace std; const int M1e35; const int N2e55; vector<int> e[N]; #define pii pair<int,int> vector<pii> query[M];…

day26 求一段连续子数组之和的最大值

题目描述 方法一&#xff1a;超出时间限制 思路&#xff1a;选一个起点&#xff0c;选一个终点&#xff0c;计算起点到终点的和&#xff1b;求max&#xff1b; 起点几种可能&#xff1a;0 到 size -1; 终点&#xff1a; 起点 到 size -1&#xff1b; int maxSubArray(int* nu…

【网站 全选和单选】js 实现-点击全选按钮时,所有的按钮都会被选中或取消选中。

要实现的效果如图&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport…

【基本绘图注释函数】——MatLab画图

目录索引 title&#xff1a;ylable&#xff1a;legend&#xff1a; title&#xff1a; 在绘图中添加标签。此类函数的输入是一个字符串。MATLAB 中的字符串是用双引号 (") 引起来的。 上面一部分画图代码这里省略 title("Sample Mass")ylable&#xff1a; 为y轴…

BUUCTF-EasyLogin

这是一道 Node.js 语言的题目&#xff0c;在此记录我在做这道题的思考过程。 这道题考的是 CVE-2022-23540. 简单测试 进入题目环境&#xff1a; 一个登录页面&#xff0c;由题目的名称 EasyLogin&#xff0c;我猜测这道题是身份认证缺陷的问题。不过&#xff0c;还是下意识测…

用主流编程语言解小学题

最近在网上刷到一个视频&#xff0c;内容是奶奶有60 元钱&#xff0c;去超市买了10元水果&#xff0c;收营员应该找奶奶多少钱?我一开始反应就是50元&#xff0c;后来想了想题干里没有说明这60元是怎么构成的&#xff0c;有可能是一张50元和一张10元&#xff0c;或者是3张20元…

day36-JSON+Servlet

0目录 JSONServlet 1.JSONServlet 1.1 创建工程/导入依赖/创建包/BaseDao...... 依赖&#xff1a;javax.servlet、jstl、mysql、taglibs、fastjson <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <…

sqli-labs 1-5 (手注和sqlmap)

sql注入 就是指web运用程序对用户输入数据的合法性没有判断&#xff0c;前端传入后端的参数是攻击者可控的&#xff0c;并且参数代入数据库查询&#xff0c;攻击者可以构造不同的SQL语句来实现对数据库的任意操作。 当然&#xff0c;SQL注入按照不同的分类方法可以分为很多种&a…

高等数学❤️第一章~第二节~极限❤️极限的概念与性质~函数极限(自变量趋于有限值时的极限)详解

【精讲】高等数学中函数极限&#xff1a;自变量趋于有限值时的极限 博主&#xff1a;命运之光的主页 专栏&#xff1a;高等数学 目录 【精讲】高等数学中函数极限&#xff1a;自变量趋于有限值时的极限 导言 二、函数极限自变量趋于有限值的判定方法 三、函数极限自变量趋于…

回溯算法详解(Back Tracking)

本文已收录于专栏 《算法合集》 目录 一、简单释义1、算法概念2、算法目的3、算法思想 二、核心思想三、图形展示四、算法实现1、实现思路2、代码实现TreeNode 类将数组处理成二叉树结构并且返回根节点进行搜索 五、算法分析1、时间复杂度2、空间复杂度3、算法稳定性 一、简单释…

RestFul风格讲解

以前是localhost:8080/user?methodadd&uid1; RestFul风格是以/接上的 localhost:8080/user/马云/6562 package com.qf.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annot…

freemarker模板在客服域的使用场景及用法介绍

&#x1f34a; Java学习&#xff1a;社区快速通道 &#x1f34a; 深入浅出RocketMQ设计思想&#xff1a;深入浅出RocketMQ设计思想 &#x1f34a; 绝对不一样的职场干货&#xff1a;大厂最佳实践经验指南 &#x1f4c6; 最近更新&#xff1a;2023年7月15日 &#x1f34a; 点…

从零搭建秒杀服务

1. 前言 目的&#xff1a;该项目只用于技术交流&#xff0c;不用于过多商业用途。 适用&#xff1a;可用于简历亮点、毕业答辩等。 2. 项目成果 2.1 秒杀主页 包含5个功能点&#xff1a; ①、Product Name&#xff1a;秒杀商品名称 ②、Product Image&#xff1a;秒杀商…