正则表达式 Regular Expression学习

该文章内容为以下视频的学习笔记:

10分钟快速掌握正则表达式_哔哩哔哩_bilibili正则表达式在线测试工具:https://regex101.com/, 视频播放量 441829、弹幕量 1076、点赞数 19330、投硬币枚数 13662、收藏人数 26242、转发人数 2768, 视频作者 奇乐编程学院, 作者简介 ,相关视频:正则表达式30分钟入门40分钟进阶(绝对能学会),【无废话30分钟】Lua快速入门教程 - 4K超清,正则表达式15分钟速成,2022最新 彻底搞懂正则表达式,20分钟学完一遍python基础,一个10分钟的numpy入门教程,15分钟带你快速掌握正则表达式,硬核Python进阶篇 - 一小时掌握正则表达式 【正则表达式,re,Python,正则表达式实例】,Docker 是什么?30秒听懂。,Python小技巧:装饰器(Decorator)https://www.bilibili.com/video/BV1da4y1p7iZ/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=4298755c4e2edc1fe805c41cc2d7379a

1.简介:

**正则表达式:**匹配指定规则的字符串。

应用:

1️⃣编译器中的词法分析器 使用正则表达式去匹配代码中的关键字

2️⃣网站上的注册表单会用到正则表达式去判断密码的复杂程度

3️⃣爬虫中用正则表达式中提取我们需要的信息


2.限定符(一个字符):

(1)?

作用:? 在正则表达式中是一个特殊的字符------限定符,代表前面这个字符需要出现 0 次或者 1 次

(2)*

作用:去匹配 0 个或[多] 个字符(代表没有或者可以出现多次)

(3)+

作用:匹配 出现[1] 次以上的字符

(4){···}

作用:花括号同时允许我们输入一个范围,精确到匹配次数


3.匹配多个字符的重复

匹配中间多次出现的ab


4.OR Operator "或" 运算


5.Character Classes 字符类

匹配由 abc 这几个字母构成的单词

**作用:**方括号里的内交代表要求匹配的字符只能取自于它们

此外可以在方括号里指定字符的范围

例:

  • [a-z]代表所有的小写英文字符
  • [a-zA-Z]代表所有的英文字符
  • [a-zA-Z0-9] 代表所有的英文字符和数字

若在方括号前加 脱字符 ^,则代表要求匹配除了尖号后面列出的 [以外] 的字符


6.Mera-characters 元字符

正则表达式中的大多数元字符都以反斜杠开头

例:

(1)\d 代表数字字符 等同于 [0-9]

(2)\w 单词字符(英文、数字及下划线)

(3)\s 空白符(包含Tab和换行符)

(4)\D 非数字字符

(5)\W 非单词字符

(6)\S 非空白字符

(7). 字符

作用:代表任意字符,但不代表换行符

(8)^ 匹配行首 $ 配行尾

正则表达式中的脱字符(^)有两种不同的用法:

  1. 字符类([])内部:当脱字符(^)作为字符类的第一个字符时,表示取反操作,即匹配除了指定字符以外的任意字符。例如,正则表达式[^aeiou]匹配任意非元音字母。
  2. 模式开头:当脱字符(^)作为正则表达式的开头时,表示匹配字符串的开始位置。例如,正则表达式^abc匹配以"abc"开头的字符串。

7.实操:

(1)匹配里面里面的 HTML标签

错误:

原因:.+ 会匹配尽可能多的字符 ------>. 代表任意字符

正确方式:

? 会将正则表达式中默认的贪婪匹配(Greedy Match) 切换为懒惰匹配(Lazy Match)


(2)RGB 颜色值匹配

匹配文本中出现的所有十六进制 RGB 颜色值

在表达式末尾加入\b 来代表单词字符的边界

(3)IPv4 地址匹配

IPv4 的地址实际上是由四段数字构成,数字之间由句点隔开

\d+ 会匹配任何长度大于 1 的数字

\. 代表 . 这个字面量(. 是元字符 代表任意字符)

但 IP 地址的每个部分都是 8 位的数字,也就是说它的范围介于 0-255 之间。

正确方式:

  1. 如果它的前两位是25,那么最后一位只能取 0-5 之间的数字
  2. 如果它的第一位是 2,第二位是 0-4 之间的数,那么最后一位可以取 0-9 之间的任意值(用 \d 代替)
  3. 如果它的第一位是 0 或者 1,那么最后两位可以取 00-99 之间的任意数字(用 \d \ d 代替)

IP 地址的每一部分也可以由两位数字构成,甚至是1位。------> 可以直接将这里的第一个数字和第三个数字后面都加一个 ?

📜8.总结:

学习资源:

正则表达式30分钟入门教程 作者:deerchao

https://deerchao.cn/tutorials/regex/regex.htm

Regex tutorial ------A quick cheatsheet by examples(英文)作者:Jonny Fox

https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285

Regular Expressions Tutorial(英文)

https://www.regular-expressions.info/tutorial.html

相关推荐
Charles Ray33 分钟前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
我要吐泡泡了哦2 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫1232 小时前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
贾saisai4 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
北岛寒沫4 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
铁匠匠匠5 小时前
从零开始学数据结构系列之第六章《排序简介》
c语言·数据结构·经验分享·笔记·学习·开源·课程设计
架构文摘JGWZ7 小时前
Java 23 的12 个新特性!!
java·开发语言·学习
小齿轮lsl7 小时前
PFC理论基础与Matlab仿真模型学习笔记(1)--PFC电路概述
笔记·学习·matlab
Aic山鱼7 小时前
【如何高效学习数据结构:构建编程的坚实基石】
数据结构·学习·算法
qq11561487077 小时前
Java学习第八天
学习