该文章内容为以下视频的学习笔记:
正则表达式:匹配指定规则的字符串。
应用:
1️⃣编译器中的词法分析器 使用正则表达式去匹配代码中的关键字

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

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

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

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

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

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


匹配中间多次出现的ab


匹配由 abc 这几个字母构成的单词
作用:方括号里的内交代表要求匹配的字符只能取自于它们
此外可以在方括号里指定字符的范围

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

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






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

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


错误:

原因:.+ 会匹配尽可能多的字符 ——>. 代表任意字符
正确方式:
? 会将正则表达式中默认的贪婪匹配(Greedy Match)切换为懒惰匹配(Lazy Match)
匹配文本中出现的所有十六进制 RGB 颜色值
在表达式末尾加入\b 来代表单词字符的边界

IPv4 的地址实际上是由四段数字构成,数字之间由句点隔开
\d+ 会匹配任何长度大于 1 的数字
\. 代表 . 这个字面量(. 是元字符 代表任意字符)
但 IP 地址的每个部分都是 8 位的数字,也就是说它的范围介于 0-255 之间。
正确方式:
IP 地址的每一部分也可以由两位数字构成,甚至是1位。——> 可以直接将这里的第一个数字和第三个数字后面都加一个 ?

学习资源:
正则表达式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