首先感谢一下网站提供的学习帮助
备忘单
锚点
符号 |
作用 |
示例文本 |
示例正则表达式 |
^ |
匹配字符串或行的开头 |
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 |
介绍
什么是「正则表达式」?
基本匹配
点 .
:任何字符
字符集 [abc]
否定字符集 [^abc]
字母范围 [a-z]
数字范围 [0-9]
重复
星号 *
加号 +
问号 ?
大括号 {}
分组与或
括号 ()
: 分组
引用组
括号 (?: )
: 非捕获分组
竖线 |
各种常用元字符
转义字符 \
插入符 ^
: 匹配字符串的开始
美元符号 $
: 匹配字符串的结束
单词字符 \w
: 字母、数字和下划线
非单词字符 \W
数字字符 \d
非数字字符 \D
空白符 \s
非空白符 \S
零宽断言
如果我们希望正在写的词语出现在另一个词语之前或之后,我们需要使用「零宽断言」。请前往下一步骤,学习如何使用「零宽断言」。
正向先行断言: (?=)
负向先行断言: (?!)
正向后行断言: (?<=)
负向后行断言: (?<!)
标志
标志改变表达式的输出。这就是标志也称为 **修饰符**
的原因。标志决定表达式是否将文本视作单独的行处理,是否区分大小写,或者是否查找所有匹配项。请继续下一步步骤以学习标志。
全局标志
多行标志
忽略大小写标志
匹配模式
贪婪匹配
懒惰匹配
结束