之前想学习正则表达式, 但是看网上的教程都是文字, 学着学着没兴趣了
直到遇见了这个网站: https://regexlearn.com/zh-cn/learn
一小时基本学会了. 别人写的表达式可以看懂了, 自己也会写一些了 剩下的就是熟练度 + 调试了;
再配合这个网站的提供的现成正则表达式,还有可视化功能, 基本就搞定了常用的东西 :Road 2 Coding
下面是自学的一些笔记:
. 任何单个字符
[abc] 可选字符
[^abc]否定字符集
[a-z][0-9] 字母范围 /数字范围
x* 表示x出现 >= 0 次
x+ 表示x出现 >= 1 次
x? 表示x出现 0 或 1 次
x{n} 代表x这个字符 出现 n 次
x{n,} 代表x这个字符 至少出现 n 次
x{n,m} 代表x这个字符 至少出现 n 次,至多出现m次 ,n<m
(x) 分组
(x)-\1 引用组 1代表组的id
(?: xx) 非引用组 代表这个组不作为引用组 ,计算id的时候跳过
| 代表 或
\* 在符号前面加上转义字符
^[x] 仅查找行首的x 限定开头
[x]$ 匹配仅出现在行尾的字符
\w 字母数字下划线
\W 字母数字下划线以外的字符
\d 匹配数字
\D 非匹配数字
\s 空白
\S 非空白
(?=x)匹配后面有x的字符
(?!x)匹配后面没有x的字符
(?<=x) 匹配前面有x的字符
(?<!x) 匹配前面没有x的字符
/g 全局标志,放在最后
/m 视为多行,放在最后
/i 区分大小写,放在最后
.*?x 懒惰匹配, 只匹配符合的第一个匹配项
x\b 寻找处在单词边界的x
x\B 寻找不处在单词边界的x