第二十七章 正则表达式

第二十七章 正则表达式

  • 1.正则快速入门
  • 2.正则需求问题
  • 3.正则底层实现1
  • 4.正则底层实现2
  • 5.正则底层实现3
  • 6.正则转义符
  • 7.正则字符匹配
  • 8.字符匹配案例1
  • 9.字符匹配案例2
  • 11.选择匹配符(|)
  • 12.正则限定符
    • {n}
    • {n,m}
    • +(1个或者多个)
    • *(0个或者多个)
    • ?(0个或者1个)
  • 13.正则定位符
    • ^ 指定起始字符
    • $ 指定结束字符
    • \\\b 匹配目标字符串的边界
    • \\\B 匹配目标字符串的非边界
  • 14.捕获分组
    • (pattern)
    • (?<name> pattern)
  • 15.非捕获分组
    • (?:pattern)
    • (?=pattern)
    • (?!pattern)
  • 16.非贪婪匹配
  • 17.正则应用实例
    • 1.汉字
    • 2.邮政编码
    • 3.QQ号码
    • 4.手机号码
  • 18.正则验证复杂URL
  • 19.Pattern类
  • 20.Matcher类
    • start/end
    • matches
    • replaceAll
  • 21.反向引用
  • 22.反向引用案例
  • 23.结巴去重案例
  • 24.替换分割匹配
  • 25.本章练习01
  • 26.本章练习02
  • 27.本章作业03

在这里插入图片描述

1.正则快速入门

在这里插入图片描述
在这里插入图片描述
(1)
在这里插入图片描述
在这里插入图片描述

(2)
在这里插入图片描述
在这里插入图片描述

(3)
在这里插入图片描述
在这里插入图片描述

(4)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
加个编号
在这里插入图片描述
在这里插入图片描述
如果我们想要快速提取以下内容的IP地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.正则需求问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.正则底层实现1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.正则底层实现2

查找到第一个字符1998的过程
在这里插入图片描述
在这里插入图片描述
查找到第二个字符1999的过程
在这里插入图片描述
在这里插入图片描述

5.正则底层实现3

在这里插入图片描述
加了一个括号之后
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.正则转义符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:如果这里没有转义字符,编译是错误的
在这里插入图片描述
在这里插入图片描述
下面如果我们只写一个 . ,表示我们要找到所有字符
如果要找到 . 本身,则需要加上转义字符
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.正则字符匹配

在这里插入图片描述
在这里插入图片描述
+表示一个或多个的意思

8.字符匹配案例1

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.字符匹配案例2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.选择匹配符(|)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12.正则限定符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

{n}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面这个表示要出现一个任意的数字,出现两次
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

{n,m}

尽可能匹配多的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

+(1个或者多个)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

*(0个或者多个)

在这里插入图片描述
在这里插入图片描述

?(0个或者1个)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.正则定位符

在这里插入图片描述

^ 指定起始字符

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里一个都匹配不到,因为不是以数字开头的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

$ 指定结束字符

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

\\b 匹配目标字符串的边界

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

\\B 匹配目标字符串的非边界

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14.捕获分组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(pattern)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(? pattern)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15.非捕获分组

在这里插入图片描述
在这里插入图片描述

(?:pattern)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(?=pattern)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(?!pattern)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16.非贪婪匹配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

17.正则应用实例

在这里插入图片描述

1.汉字

在这里插入图片描述
这里的中文的范围用16进制来表示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.邮政编码

在这里插入图片描述
在这里插入图片描述

3.QQ号码

在这里插入图片描述
在这里插入图片描述

4.手机号码

在这里插入图片描述
在这里插入图片描述

18.正则验证复杂URL

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

19.Pattern类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

20.Matcher类

在这里插入图片描述
在这里插入图片描述

start/end

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

matches

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

replaceAll

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

21.反向引用

在这里插入图片描述
在这里插入图片描述

22.反向引用案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

23.结巴去重案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就是:虽然上面的正则表达式是匹配到的连续重复的字,但是捕获的是圆括号里面的内容, 所以捕获的组里面的字只有一个,因此使用replaceAll(“$1”)的意思是:用捕获到的单个字去替换匹配到的多个字
在这里插入图片描述
在这里插入图片描述

24.替换分割匹配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

25.本章练习01

在这里插入图片描述
. 在小括号中表示匹配任意字符,所以要写成\.
这里直接用了String自带的matches方法
在这里插入图片描述
在这里插入图片描述
加一个^和$更好
在这里插入图片描述
在这里插入图片描述
前面不加也可以的原因是
在这里插入图片描述

26.本章练习02

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里有个问题,下面这种写法也是正确的
在这里插入图片描述
在这里插入图片描述
下面在做一下改进
在这里插入图片描述
在这里插入图片描述

27.本章作业03

在这里插入图片描述
/abc这部分可以有0个或者多个
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

『华为云耀云服务器实战』|云服务器如何快速搭建个人博客(图文详解)

文章目录 引言一、云耀云服务器L实例介绍1.1 准备一个华为云耀云服务器1.2 重置实例密码1.3 利用xshell 远程连接 二、安装环境软件2.1 安装git准备远程拉取2.2 安装Docker 和 Docker compose 三、博客开源项目介绍3.1 操作界面展览 四、拉取项目搭建个人博客4.1 拉取项目进行配…

【linux kernel】linux的SPI框架分析

文章目录 一、linux内核中的SPI框架二、SPI核心的初始化三、SPI核心的数据结构1、struct spi_statistics2、struct spi_delay3、struct spi_device4、struct spi_driver5、struct spi_controller6、struct spi_res7、struct spi_transfer8、struct spi_message9、struct spi_bo…

CMake支持的编译平台和IDE

文章目录 简介支持的IDEVisual Studio支持示例 其他编译器和生成器支持MinGW示例 IDE集成Eclipse示例 实验性和特殊平台支持总结 简介 CMake是一个非常强大的跨平台自动化构建工具&#xff0c;它支持生成多种类型的项目文件&#xff0c;覆盖了广泛的开发环境和编译器。在这篇博…

基于PCA-WA(Principal Component Analysis-weight average)的图像融合方法 Matlab代码及示例

摘要&#xff1a; 高效地将多通道的图像数据压缩&#xff08;如高光谱、多光谱成像数据&#xff09;至较低的通道数&#xff0c;对提高深度学习&#xff08;DL&#xff09;模型的训练速度和预测至关重要。本文主要展示利用PCA降维结合weight-average的图像融合方法。文章主要参…

leetcode第206题反转链表❤

一&#xff1a;题目&#xff1a; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网…

互补滤波简述

互补滤波也可以用来做IMU的姿态解算&#xff0c;它相比于卡尔曼滤波计算更简单&#xff0c;实时性更好&#xff0c;但精度不如卡尔曼滤波。 互补滤波的原理是利用了角度计算中加速度计和陀螺仪的特点&#xff0c;即加速度计长时间更准确&#xff0c;陀螺仪短时间更准确&#x…

【OpenCV】在MacOS上源码编译OpenCV

在MacOS上源码编译OpenCV 1. 下载项目源码2. 创建CMake编译文件3. 编译安装4. 案例测试5. 总结 前言 在做视觉任务时&#xff0c;我们经常会用到开源视觉库OpenCV&#xff0c;OpenCV是一个基于Apache2.0许可&#xff08;开源&#xff09;发行的跨平台计算机视觉和机器学习软件…

js中函数动态调用

文章目录 一、场景二、方法2.1、动态函数2.2、eval()函数 三、最后 一、场景 在JS开发中&#xff0c;例如有些场景下&#xff0c;后端要求一个功能要请求不同的接口&#xff0c;但是传参及后续逻辑其实都是一样的&#xff0c;有些同学可能会想到在接口url处统一处理就好&#…

在 docker 容器中配置双网卡,解决通讯的问题

目录 1. 查看当前网络信息 2. 创建自定义网络 3. 查看网卡信息 4. 建立双网卡模式 5. 查看容器的网络 6. 从双网卡中删除默认网卡 已经创建好了的 Docker 容器&#xff0c;要修改它的IP比较麻烦&#xff0c;网上找了几种不同的方法&#xff0c;经过试验都没有成功&…

HeyGen怎么使用想使用高级功能如何订阅

HeyGen是一款AI视频工具&#xff0c;可以让用户轻松地用不同语言说话。 HeyGen是一个用于生成“虚拟化身&#xff08;数字人&#xff09;”视频的工具。 根据其官网的介绍&#xff0c;HeyGen可以通过文本生成视频&#xff0c;有不同的视频模板&#xff0c;可以定制化人物形象、…

Android Studio报错:connect refused

报错信息 解决办法&#xff1a;在System settings里取消代理&#xff0c;将HTTP Proxy设置为 No proxy 但是我发现我的还不行&#xff0c;还是报错&#xff0c;还是connect refused&#xff1a; 我发现虽然在System settings里已经取消代理&#xff0c;但实际项目运行时还是走…

鸿蒙原生应用/元服务开发-Serverless账户验证码的问题

在应用/元服务早期使用过程中&#xff0c;-Serverless账户验证码的格式是[AGC][应用/元服务名称]&#xff0c;如下图。 但是&#xff0c;在最近&#xff0c;[应用/元服务]名称直接变成了【default】,用户收到这种验证码后&#xff0c;心里存有疑虑的&#xff0c;这是哪里配置…

OSG-渲染状态、纹理映射(一)

1、渲染状态 OSG 支持绝大部分的OpenGL固定功能管道(fixed function pipeline)渲染,如Alpha检验、Blending融合剪切平面、颜色蒙板、面选(face culling)深度和模板检验、雾效、点和线的光栅化(rasterization)等。OSG 的渲染状态也允许应用程序指定顶点着色(vertex shader)和片段…

墙裂分享的免费好用api接口

企业工商三要素核验 API&#xff1a;通过输入企业名称、法人、注册号 /组织机构代码 /统一社会信用代码&#xff0c;验证三者是否匹配一致。企业工商四要素核验&#xff1a;传入企业名称、社会统一信用代码、法人名称、法人身份证&#xff0c;校验此四项是否一致。空气质量查询…

Python 数据库(一):使用 mysql-connector-python 操作 MySQL 数据库

大家好&#xff0c;我是水滴~~ 当涉及到使用 Python 操作 MySQL 数据库时&#xff0c;mysql-connector-python 库是一个强大而常用的选择。该库提供了与 MySQL 数据库的交互功能&#xff0c;使您能够执行各种数据库操作&#xff0c;如连接数据库、执行查询和插入数据等。在本文…

【业务中台-上线总结篇】

上线总结篇&#xff1a;从项目切换、问题处理、项目总结、项目验收环节展开 一、项目切换&#xff1a; 在上一章我们提到有制定详细规划的切换计划&#xff0c;在实际切换过程中&#xff0c;我们也是严格按照既定时间节点进行。然而&#xff0c;及时再详情的计划&#xff0c;也…

R语言——R函数、选项参数、数学统计函数(六)

目录 一、R函数 二、选项参数 三、数学统计函数 四、参考 一、R函数 1.lm() lm()是R语言中经常用到的函数&#xff0c;用来拟合回归模型。它是拟合线性模型最基本的函数 lm()格式如下&#xff1a; fit<-lm(formula,data) 其中&#xff0c;formula指要拟合的模型形式…

draw流程图工具导入云原生(CNCF)相关控件

目录 1、通过draw导入xml文件&#xff0c;获取云原生相关的空间 2、引用自己的资源链接&#xff1a; 1、通过draw导入xml文件&#xff0c;获取云原生相关的空间 导入资源图库&#xff0c;资源放在下方&#xff0c;大家可以下载&#xff1a; 2、引用自己的资源链接&#xff1a;…

Vue实现JSON字符串格式化编辑器组件

相信很多同学都用过网上的在线JSON格式化工具来将杂乱的JSON数据转换成易于我们阅读和编辑的格式。那么&#xff0c;你有没有想过自己动手实现一个这样的工具呢&#xff1f;今天&#xff0c;我将介绍如何使用Vue.js来构建一个简单的JSON格式化工具。 功能简述 支持格式化JSON字…

Linux使用yum命令安装postgrepsql

1.检查安装源 yum search postgresql 2.安装 yum install postgresql-server 3.启动数据库 service postgresql start 4.查看启动状态 service postgresql status 5.登陆测试 su - postgrep psql \l6.远程连接 6.1修改配置文件 在pg_hba.conf增加host all all 0.0.0…