第二十七章 正则表达式

第二十七章 正则表达式

  • 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个或者多个
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenGL FXAA抗锯齿算法(Qt,Consloe版本)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 之前已经提供了使用VCG读取Mesh的方式,接下来就需要针对读取的网格数据进行一些渲染操作了。在绘制Mesh数据时总会遇到图形的抗锯齿问题,OpenGL本身已经为我们提供了一种MSAA技术,但该技术对于一些实时渲染性能有…

软件测试/测试开发丨Pytest 测试框架学习笔记

前言 自动化测试前&#xff0c;需要提前准备好数据&#xff0c;测试完成后&#xff0c;需要自动清理脏数据&#xff0c;有没有更好用的框架&#xff1f;自动化测试中&#xff0c;需要使用多套测试数据实现用例的参数化&#xff0c;有没有更便捷的方式&#xff1f;自动化测试后…

​iOS实时查看App运行日志

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 &#x1f4dd; 摘要&#xff1a; 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具&#xff0c;我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…

6个Python大礼包,请查收!

呕心沥血整理出来和视频相配套的笔记文档&#xff0c;搭配起来&#xff0c;学习事半功倍&#xff0c;赶紧收藏起来&#xff01;&#xff01;&#xff01; 一丶90部Python基础视频教程 基础很重要&#xff0c;打好基础事半功倍&#xff0c;只要基础打的好&#xff0c;才能顺利…

Nginx 反向代理负载均衡

Nginx 反向代理负载均衡 普通的负载均衡软件&#xff0c;如 LVS&#xff0c;其实现的功能只是对请求数据包的转发、传递&#xff0c;从负载均衡下的节点服务器来看&#xff0c;接收到的请求还是来自访问负载均衡器的客户端的真实用户&#xff1b;而反向代理就不一样了&#xf…

vue保姆级教程----深入了解 Vue Router的工作原理

&#x1f4e2; 鸿蒙专栏&#xff1a;想学鸿蒙的&#xff0c;冲 &#x1f4e2; C语言专栏&#xff1a;想学C语言的&#xff0c;冲 &#x1f4e2; VUE专栏&#xff1a;想学VUE的&#xff0c;冲这里 &#x1f4e2; CSS专栏&#xff1a;想学CSS的&#xff0c;冲这里 &#x1f4…

算法与人生 揭秘C语言中高效搜索的秘诀——二分查找算法详解

引言&#xff0c;少年们&#xff0c;大家好。在这里祝大家元旦快乐&#xff0c;我是博主那一脸阳光&#xff0c;今天来介绍二分查找 在计算机科学领域&#xff0c;搜索算法是数据处理和问题解决的重要工具之一。其中&#xff0c;**二分查找算法&#xff08;Binary Search&#…

Python 正则表达式

文章目录 第1关&#xff1a;正则表达式基础知识第2关&#xff1a;re 模块中常用的功能函数&#xff08;一&#xff09;第3关&#xff1a;re 模块中常用的功能函数&#xff08;二&#xff09; 第1关&#xff1a;正则表达式基础知识 编程要求 根据提示&#xff0c;补全右侧编辑器…

三菱MR-JE伺服脉冲轴应用参数设置

三菱MR-JE伺服在脉冲轴控制上的应用&#xff0c;常用参数设置如下&#xff1a; 1、常用参数 未完...

海信旗下“隐形冠军”信芯微,授权世强硬创代理32位MCU等产品

近日&#xff0c;世强先进&#xff08;深圳&#xff09;科技股份有限公司&#xff08;下称“世强先进”&#xff09;与海信集团旗下子公司——青岛信芯微电子科技股份有限公司&#xff08;下称“信芯微”&#xff0c;英文名&#xff1a;Hi-image&#xff09;签订授权代理合作协…

树莓派4B-Python使用PyCharm的SSH协议在电脑上远程编辑程序

目录 前言一、pycharm的选择二、添加SSH的解释器使用总结 前言 树莓派的性能始终有限&#xff0c;不好安装与使用高级一点的程序编辑器&#xff0c;如果只用thonny的话&#xff0c;本人用得不习惯&#xff0c;还不如PyCharm&#xff0c;所以想着能不能用电脑中的pycharm来编写…

低功耗蓝牙模块:促进智慧城市发展的关键技术

在科技快速发展的时代&#xff0c;智慧城市的概念正引领着城市管理的革新。为实现城市更高效、可持续和智能化的管理&#xff0c;低功耗蓝牙模块成为推动智慧城市发展的关键技术之一。本文将探讨低功耗蓝牙模块在智慧城市中的作用&#xff0c;以及其在城市基础设施、公共服务等…

JavaScript可选链接

注&#xff1a;本节仍然使用之前的饭店的对象&#xff0c;可以看上几篇文章查看代码 ● 如果我们想要看看饭店周一的开门时间&#xff0c;我们会这么写 console.log(restaurant.openingHours.mon.open);原因是我们在开放时间中并没有定义周一的开放时间&#xff0c;所有会报错…

【C语言】作用域 和 生命周期

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

暂时性死区:JavaScript 中隐藏的陷阱

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

分布式数据库事务故障恢复的原理与实践

关系数据库中的事务故障恢复并不是一个新问题&#xff0c;自70年代关系数据库诞生之后就一直伴随着数据库技术的发展&#xff0c;并且在分布式数据库的场景下又遇到了一些新的问题。本文将会就事务故障恢复这个问题&#xff0c;分别讲述单机数据库、分布式数据库中遇到的问题和…

记事本在手机桌面上怎么找?手机里的记事本怎么找?

在日常生活、工作和学习中&#xff0c;我们时常需要随手记录一些重要的事项、灵感闪现的瞬间或者是待办的任务。比如&#xff0c;在超市购物前&#xff0c;列出购物清单&#xff1b;在开会时&#xff0c;记下重要的讨论点&#xff1b;在学习时&#xff0c;捕捉那一刹那的灵感。…

58.网游逆向分析与插件开发-游戏增加自动化助手接口-游戏菜单文字资源读取的逆向分析

内容来源于&#xff1a;易道云信息技术研究院VIP课 之前的内容&#xff1a;接管游戏的自动药水设定功能-CSDN博客 码云地址&#xff08;master分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;34b9c1d43b512d0b4a3c395b…

JavaScript中BOM操作【通俗易懂】

✨前言✨   本篇文章主要在于了解JavaScript中BOM(即浏览器对象模型),以及对它的简单使用 &#x1f352;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f352;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留…

Unity | 渡鸦避难所-5 | 角色和摄像机之间的遮挡物半透明

1 前言 角色在地图上移动到岩石后面时&#xff0c;完全被岩石遮挡&#xff0c;玩家只能看到岩石。这逻辑看起来没问题&#xff0c;但并不是玩家想要看到的画面&#xff0c;玩家更希望关注角色的状态 为了避免角色被遮挡&#xff0c;可以使用 Cinemachine Collider 功能&#x…