正则表达式
一.正则表达式认知:

  1. 正则表达式的概念与方向:

正则表达式(Regular Experssion)又称正规表达式等,是计算机科学的一个概念。用来匹配、检索、替换符合我们预期的字符文本。

  1. 技术出现解决的问题:

在程序中当时我们要对数据进行替换或其他操作时,不必再使用各种的if语句进行文字的匹配,而是直接使用正则表达式就可以在繁杂的数据中匹配需要的目标数据。

二.正则表达式用法:
1.基础知识:

在任意位置进行匹配: 默认情况下, 正则表达式可以匹配被搜索字符串的 任意位置 的子字符串. 例如, 正则表达式 abc 可以匹配 abc123,123abc 以及 123abcxyz.要限制在开始或末尾进行匹配, 请使用 锚.



转义字符: 大多数字符 (例如 abc123) 可以直接使用在正则表达式中. 然而, \.*?+[{|()^$ 这些字符则必须在其前面加上反斜线来进行匹配. 例如, \. 表示一个原义的句点而 \\ 表示一个原义的反斜线. 使用 \Q...\E 能避免转义. 例如: \QLiteral Text\E.



区分大小写: 默认情况下, 正则表达式是区分大小写的. 这种特性可以使用 "i" 选项进行改变. 例如, 模式 i)abc 会搜索所有大小写形式的 "abc".

2.正则表达式常见语法:

一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列匹配某个句法规则的字符串。例如:Handel、Händel和Haendel这三个字符串,都可以由H(a|ä|ae)ndel这个模式来描述。大部分正则表达式的形式都有如下的结构:

  选择:

竖线|代表选择(即或集),具有最低优先级。例如gray|grey可以匹配grey或gray。

数量限定:

某个字符后的数量限定符用来限定前面这个字符允许出现的个数。最常见的数量限定符包括+、?和*(不加数量限定则代表出现一次且仅出现一次):

加号+代表前面的字符必须至少出现一次。(1次或多次)。例如,goo+gle可以匹配google、gooogle、goooogle等;

问号?代表前面的字符最多只可以出现一次。(0次或1次)。例如,colou?r可以匹配color或者colour;

星号代表前面的字符可以不出现,也可以出现一次或者多次。(0次、1次或多次)。例如,042可以匹配42、042、0042、00042等。

匹配:

圆括号()可以用来定义操作符的范围和优先度。例如,gr(a|e)y等价于gray|grey,(grand)?father匹配father和grandfather。

上述这些构造子都可以自由组合,因此H(ae?|ä)ndel和H(a|ae|ä)ndel是相同的,表示{“Handel”, “Haendel”, “Händel”}。精确的语法可能因不同的工具或程序而异。

  1. 正则表达式用法表:

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

三.正则表达式练习:
1.练习网址:
菜鸟工具:https://c.runoob.com/front-end/854

大佬的github:https://github.com/ziishaned/learn-regex

额外补充:正则表达式python官方文档

https://docs.python.org/zh-cn/3/library/re.html

更多推荐