Regex测试推荐网站 https://regex101.com/

一 限定符与运算符

​ 正则表达式(Regular Expression,即regex)十分常见,如字符串检索,文档检索,Linux中的命令等等,要想理解正则表达式,必须学习它的限定符。

需要注意的是,regex的限定符组用于符号前面的字符或字符串。

1. 限定符 ?

1
pattern = cate?

如上所示,模式串为cate?限定符即表示e出现 0次或1次

image-20240331194200686

2. 限定符 *

1
pattern = cat*e

如上所示,模式串为cate,*限定符表示其前面的t出现 0次或多次

image-20240331194611397

3. 限定符 +

1
pattern = cat+e

如上所示,模式串为cate,+限定符表示其前面的t出现 1次以上

image-20240331194844302

4. 限定次数 { }

  1. 指定次数

    1
    pattern = cat{3}e

    如上所示,模式串为cate,限定符表示其前面的t出现 3次

    image-20240331195653818

  2. 指定次数范围

    1
    pattern = cat{2, 4}e

    如上所示,模式串为cate,限定符表示其前面的t出现 2~3次

    {2, 4} 是闭区间,即包括2、3、4。当然若只想表示2次以上,可以写成{2,},但不能用{,2}表示2次以下。

    image-20240331195728496

6. 运算符 |

1
pattern = c(a|t)+e

| 表示或运算符,我们是不需要与运算符的因为(at)直接连在一起就可以表示与。如上所示,模式串为cate,+限定符表示其前面的a或者t出现 1次以上

image-20240331201233472

二 匹配指定字符串

上述皆为匹配一个字符,若想匹配制定字符串,又该如何呢?只需用括号括起来即可,再组合上述的限定符即可实现,如:

1
pattern = c(at)+e

即表示c与a之间的at出现 1次以上

image-20240331200458415

三 匹配指定字符类

表示方式:[abc]+ ,表示匹配只由a、b、c组成的字符串。

为了指定字符的范围,我们可以使用[a-zA-Z0-9]*,表示小写和大写的字母a~z和 A~Z,还有数字 0~9.

1. 脱字符^

​ 为排除某些字符,我们引入脱字符^,如[^0-9]+表示不包括数字。

2. 元字符

​ 此外,regex还有许多内置的元字符,如下:

注意左右对比学习!

字符 释义 字符 释义
\d digital, 即数字字符 \D 反义,非数字字符
\w word,即包括英文、数字、下划线 \W 反义,非单词字符
\s 空白符,包括空格、Tab、换行 \S 反义,非空白字符
. 任意字符,包含以上所有
^ 只匹配行首,如^a,只匹配行首的a,注意在前 $ 只匹配行尾,注意在后,如a$