正则表达式

前言

很高兴遇见你~

正则表达式在日常开发中经常会用到,下面总结一些常用的分享给大家

测试工具:https://regex101.com/

一、限定符

? :表示一个字符需要出现 0 次或者 1 次

1
used? : d 可有可无

* : 匹配 0 个或多个字符

1
2
3
4
5
6
ab*c : b可以有0个或者多个

ac
abc
abbbbbbc

+ : 匹配出现一次及以上的字符

1
2
3
4
ab+c : b可以有一个或以上

abc
abbbbbbc

{n} :精确匹配,出现 n 次的字符

1
2
3
ab{6}c :精确匹配出现 6 次的字符

abbbbbbc

{n,m} : 匹配出现 n-m 次的字符

1
2
3
4
ab{1,6}c :匹配出现 1-6 次的字符

abc
abbbbbbc

{n,} :出现 n 次及以上

1
2
3
ab{2,}c :匹配出现 2 次及以上的字符

abbbbbbc

| :或运算符

1
2
3
4
a (cat|dog) :a 后面拼接 cat 或 dog

a cat
a dog

[] :匹配由中括号里面构成的内容

1
2
[abc]+ : 匹配 abc 构成的单词,至少出现一次或多次
[a-zA-Z0-9]+ : 匹配 a-z A-Z 0-9 构成的单词,至少出现一次或多次

^ : 表示取反

1
[^0-9]+ : 不取 0-9 的字符:非数字字符

二、元字符

元字符 描述
\d 数字字符
\w 单词字符(英文、数字及下划线)
\s 空白符(包含Tab和换行符)
\D 非数字字符
\W 非单词字符
\S 非空白字符
. 任意字符(不包含换行符)
^ 匹配行首 ^a:只会去匹配行首的 a
$ 匹配行尾 a$:只会去匹配行尾的 a
\b 代表单词字符的边界

三、贪婪去懒惰匹配

在表达式后面加?

1
2
3
4
5
6
<!-- 匹配下面内容中的 html 标签 -->
<span><b>This is a sample text</b></span>
<!-- 如果我们这么写,则会去匹配所有字符 -->
<.+> : 会匹配所有的字符

解决方法:将贪婪匹配转换成懒惰匹配:<.+?>

四、实战演练

实例一:匹配 16 进制颜色

1
2
3
4
5
6
7
8
#[a-fA-F0-9]{6}\b


#ffffff
#ffaaff
#aabbcc
#000000

五、总结

最后用一张图对我们上面讲的内容进行一个归纳总结:

image-20221031192203905.png

好了,本篇文章到这里就结束了,希望能给你带来帮助 🤝

感谢你阅读这篇文章

你的点赞,评论,是对我巨大的鼓励!

欢迎关注我的公众号: sweetying ,文章更新可第一时间收到

如果有问题,公众号内有加我微信的入口,在技术学习、个人成长的道路上,我们一起前进!


正则表达式
https://sweetying520.github.io/2022/10/01/正则表达式/
作者
sweetying
发布于
2022年10月1日
许可协议