当前位置: 首页 > news >正文

正则表达式 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)icon-default.png?t=N7T8https://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

 

http://www.lryc.cn/news/181625.html

相关文章:

  • 代谢组学最常用到的数据分析方法(五)
  • 105.从前序与中序遍历序列构造二叉树
  • 分支定界、分支切割、分支定价的区别
  • 数字IC前端学习笔记:数字乘法器的优化设计(阵列乘法器)
  • 批量删除wordpress文章修订版本/自动草稿残留数据(3种方法)及四种方法禁用WordPress文章历史修订/自动保存/自动草稿功能
  • HTTP初识,fiddler的使用,URL各部分介绍,QueryString
  • 计算机毕业设计 基于SpringBoot的图书馆管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 第三章:最新版零基础学习 PYTHON 教程(第十二节 - Python 运算符—Python 中的运算符函数 - 套装1)
  • AAD基础知识(identity/token/PRT)
  • 基于SSM的视频点播系统设计与实现
  • React 知识点总结
  • ALSA project the C library refrerenc (ALSA工程 C库参考说明)
  • 【Maven基础篇-黑马程序员】Maven项目管理从基础到高级,一次搞定!
  • MySQL进阶 —— 超详细操作演示!!!(下)
  • SVM(上):如何用一根棍子将蓝红两色球分开?
  • libevent源码学习笔记
  • C++ opencv设置视频的捕获方式为 MJPG设置失败
  • 计算机网络两位伟人
  • 机器学习 不均衡数据采样方法:imblearn 库的使用
  • MySQL系统与内建函数
  • STM32CubeMX学习笔记-USB接口使用(CDC虚拟串口)
  • 腾讯云 Cloud Studio 实战训练营结营活动获奖公示
  • 使用晶体管做布尔逻辑和逻辑门
  • Linux系统编程系列之线程的信号处理
  • 【C语言】青蛙跳台阶 —— 详解
  • Java - 基本数据类型和封装类型
  • day-63 代码随想录算法训练营(19) 图论 part 02
  • SpringBoot的全局异常拦截
  • 『力扣每日一题11』:转换成小写字母
  • 复习Day07:链表part03:21. 合并两个有序链表、2. 两数相加