正则弱到爆,终于忍不了
. | 表示单个任意字符 |
---|---|
[] | 方括号里面的任意字符 例: “xxx age xxx bge” 中匹配 age和bge 写法为 /[ab]ge/ |
[^] | 除去方括号中的任意字符 例:“xxx age xxx bge xxx cge” 匹配 age cge /[/^b]ge/ |
* | *之前的字符或组匹配>=0次 例:“xxx age xxx bge xxx cge” 匹配 age bge cge /[abc][a-zA-Z0-9]*/ |
+ | +之前的字符或组匹配>=1次 例:“xxx age xxx bge xxx cge d” 匹配 age bge cge /[abcd][a-zA-Z0-9]+/ d不会被匹配到,后面必须有至少一个字符 |
? | ?表示可选,可有可无 例: “age xxx bge xxx cge” 匹配 age bge cge /\s?[abc]ge/ /s表示空格 即前面有无空格都可以 |
{n,m} | 表示匹配次数为n-m次; {n,}表示>=n次; {n}表示n次 |
{xyz} | 字符集,匹配与xyz完全相等的字符集 |
| | 或运算符 |
\ | 转译符,针对特殊符号 |
^ | 开头 asdfasdfasdf /^a[a-zA-Z0-9]*/ 以a开头的字符串 |
$ | 结尾 age xxx bge xxx cge /[a-zA-Z0-9_ .]*(ge)$/ |
- 常用简写
\w 匹配所有字母数字,等同于[a-zA-Z0-9_]
\W 匹配所有非字母数字,即符号,等同于:[^\w]
\d 匹配数字:[0-9]
\D 匹配非数字:[^\d]
\s 匹配所有空格字符,等同于:[\t\n\f\r\p{Z}]
\S 匹配所有非空格字符:[^\s]
- 断言
?= 正先行断言-存在
?! 负先行断言-排除
?<= 负先行断言-排除
?<! 负后发断言-排除
括号的匹配型和捕获型
!!非常牛掰的在线练习讲解地址,所有例子附带讲解,在线练习
https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md