首先感谢一下网站提供的学习帮助

备忘单

锚点

符号 作用 示例文本 示例正则表达式
^ 匹配字符串或行的开头 an answer or a question ^\w+
$ 匹配字符串或行的末尾 an answer or a question \w+$
\b 匹配单词的开头或末尾 an answer or a question n\b
\B 匹配不在单词开头或末尾的位置 an answer or a question n\B

标志

符号 作用 示例文本 示例正则表达式
i 忽略大小写:使表达式忽略大小写 CaT cati
g 全局:确保表达式不会在检索到第一个匹配项时停止 cat cat cat cat cat catg
m 多行:如果不启用,^$ 只匹配整个字符串的开始和结束,而不会单独匹配每一行 cat
cat
catm

组和引用

符号 作用 示例文本 示例正则表达式
() 使表达式分组 hahaha hah haha (ha)+g
\1 引用表达式的分组 hah haa dad (\w)a\1g
(?:) 创建无法引用的分组 hahaha hah haha (?:ha)+g

字符类

符号 作用 示例文本 示例正则表达式
[abc] 匹配集合中的任意字符 bar ber bir bor bur b[eo]r
[^abc] 匹配不在集合中的任意字符 bar ber bir bor bur b[^eo]r
[a-z] 匹配两个字符之间的任意字符,包括它们本身 abcd e f g h i jklmnopqrstuvwxyz [e-i]
. 匹配除换行符之外的任意字符 h i 0 1 2 _ - ! ? .
\w 匹配字母、数字或下划线 h i 0 1 2 _ -!? \w
\W 匹配除字母、数字和下划线之外的任意字符 hi 012 _ - ! ? \W
\d 匹配所有数字 +1-(4 4 4)-2 2 2 \d
\D 匹配除数字外的任意字符 +1- (444) -222 \D
\s 匹配所有空白字符 one two \s
\S 匹配除空白字符以外的任意字符 o n e t w o \S

零宽断言

符号 作用 示例文本 示例正则表达式
(?=) 正向先行断言 1st 2nd 3pc \d(?=nd)g
(?!) 负向先行断言 1st 2nd 3pc \d(?!nd)g
(?>=) 正向后行断言 #1 $2 %3 (?<=%)\dg
(?>!) 负向后行断言 #1 $2 %3 (?<!%)\dg

量词与分支

符号 作用 示例文本 示例正则表达式
+ 表达式匹配一个或多个 bp bep beep beeep be+pg
* 表达式匹配零个或多个 bp bep beep beeep be*pg
{1,3} 表达式匹配指定范围的位数 bp bep beep beeep be{1,2}pg
? 使表达式可选,匹配0个或者一个 color, colour colou?rg
| 类似于“或”,用于匹配多种符合条件的表达式之一 fat, cat, rat (c|r)atg

介绍

image.png

什么是「正则表达式」?

image.png

基本匹配

image.png

.:任何字符

image.png

字符集 [abc]

image.png

否定字符集 [^abc]

image.png

字母范围 [a-z]

image.png

数字范围 [0-9]

image.png

重复

image.png

星号 *

image.png

加号 +

image.png

问号 ?

image.png

大括号 {}

image.png
image.png
image.png

分组与或

括号 (): 分组

image.png

引用组

image.png

括号 (?: ): 非捕获分组

image.png

竖线 |

image.png

各种常用元字符

转义字符 \

image.png

插入符 ^: 匹配字符串的开始

image.png

美元符号 $: 匹配字符串的结束

image.png

单词字符 \w: 字母、数字和下划线

image.png

非单词字符 \W

image.png

数字字符 \d

image.png

非数字字符 \D

image.png

空白符 \s

image.png

非空白符 \S

image.png

零宽断言

如果我们希望正在写的词语出现在另一个词语之前或之后,我们需要使用「零宽断言」。请前往下一步骤,学习如何使用「零宽断言」。

正向先行断言: (?=)

image.png

负向先行断言: (?!)

image.png

正向后行断言: (?<=)

image.png

负向后行断言: (?<!)

image.png

标志

标志改变表达式的输出。这就是标志也称为 **修饰符** 的原因。标志决定表达式是否将文本视作单独的行处理,是否区分大小写,或者是否查找所有匹配项。请继续下一步步骤以学习标志。

全局标志

image.png

多行标志

image.png

忽略大小写标志

image.png

匹配模式

贪婪匹配

image.png

懒惰匹配

image.png

结束

image.png