正则表达式
Regex测试推荐网站 https://regex101.com/
一 限定符与运算符
正则表达式(Regular Expression,即regex
)十分常见,如字符串检索,文档检索,Linux中的命令等等,要想理解正则表达式,必须学习它的限定符。
需要注意的是,regex的限定符组用于符号前面的字符或字符串。
1. 限定符 ?
1 | pattern = cate? |
如上所示,模式串为cate
,?
限定符即表示e
出现 0次或1次。
2. 限定符 *
1 | pattern = cat*e |
如上所示,模式串为cate,*
限定符表示其前面的t
出现 0次或多次。
3. 限定符 +
1 | pattern = cat+e |
如上所示,模式串为cate,+
限定符表示其前面的t
出现 1次以上。
4. 限定次数 { }
-
指定次数
1
pattern = cat{3}e
如上所示,模式串为cate,限定符表示其前面的
t
出现 3次。 -
指定次数范围
1
pattern = cat{2, 4}e
如上所示,模式串为cate,限定符表示其前面的
t
出现 2~3次。{2, 4}
是闭区间,即包括2、3、4。当然若只想表示2次以上,可以写成{2,}
,但不能用{,2}
表示2次以下。
6. 运算符 |
1 | pattern = c(a|t)+e |
|
表示或运算符,我们是不需要与运算符的因为(at)直接连在一起就可以表示与。如上所示,模式串为cate,+
限定符表示其前面的a
或者t
出现 1次以上。
二 匹配指定字符串
上述皆为匹配一个字符,若想匹配制定字符串,又该如何呢?只需用括号括起来即可,再组合上述的限定符即可实现,如:
1 | pattern = c(at)+e |
即表示c与a之间的at
出现 1次以上。
三 匹配指定字符类
表示方式:[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$ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jingle Cath の 博客!