AI会就行了,我还要学正则表达式干嘛?
现在 AI 都那么强大了我还为什么需要去学习正则表达式这个烦人的东西呢?
问 AI:打开浏览器 -> 输入 chat.xxx.com -> 登录 -> 输入问题 ->得到答案
靠自己 🧠: 输入问题 -> 得到答案
简单明了可以看出来对于一些简单的东西如果掌握了,会大大减少得到问题答案的 ⏱
下面说明的表达式是运行在 javascript 环境下的
正则表达式只能处理字符串,懂了没,字符串!!!
推荐使用 vscode 插件,可以在线测试正则表达式的匹配字符串
编写
1 | //=>字面量创建方式(两个斜杠之间包起来的,都是用来描述规则的元字符) |
组成
量词元字符
设置字符出现的次数
符号 | 含义 |
---|---|
* | 任意次(包括 0 次) |
+ | 至少出现一次 |
? | 0 次或 1 次 |
{n} | 出现 n 次 |
{n,} | 至少出现 n 次 |
{n,m} | 出现了 n~m 次 |
特殊元字符
单个或者组合再一起代表特殊的含义
符号 | 说明 |
---|---|
\ | 转义字符 |
. | 除了 \n(换行符) 以外的任意字符 |
^ | 以哪个元字符作为开始 |
$ | 以哪个元字符作为结束 |
\n | 换行符 |
\d | 0~9 之间的一个数字 |
\D | 非 0~9 之间的一个数字(大小写意思是相反) |
\w | 数字、字母、下划线中的任意一个字符 |
\s | 一个空白字符(包含空格、制表符、换页符等) |
\t | 一个制表符(TAB 键:4 个字符) |
\b | 匹配一个单词的边界 |
x|y | x 或者 y 其中一个字符 |
[xyz] | x、y、z 其中一个字符 |
[^xy] | 除了 x 和 y 以外的任意字符 |
[a-z] | 指定 a~z 这个范围中的任意字符 [0-9a-zA-Z_]===\w |
[^a-z] | 上一个的取反 “非” |
() | 分组符号 有点像作用域 |
(?:) | 只匹配不捕获 |
(?=) | 正向预查 |
(?!) | 逆向预查 |
普通元字符
代表本身含义的,就是跟字符串一样的作用
\snailuu\
匹配的就是 "snailuu"
修饰符
符号 | 含义 |
---|---|
i -> ignoreCase | 忽略字符大小写 |
m -> multiline | 多行匹配 |
g -> global | 全局匹配 |
常见/遇到的正则表达
有效数字
1 | /* |
密码
由数字+字母+下划线组成
1 | /** |
邮箱
1 | /** |
评论
匿名评论
你无需删除空行,直接评论以获取最佳展示效果