学习正则表达式,需要借助工具来测试自己写的对不对 查看效果,可以用https://regex101.com/ 网站在线测试
限定符
- ? :代表前面的字符需要出现0 次 或者 1次,即可有可无
例如
used?
代表的是d 出现0次或者1次
- *:代表前面的字符可以出现的次数不限制,可以是0次和多次
ab*c
- +: 代表前面的字符出现 1次以上
ab+c
- {} :可以指定前面的字符出现的次数
//字符b需要出现6次
ab{6}c
//字符b出现在2到6 次的范围内
ab{2,6}c
//字符出现在2次以上
ab{2,}c
- () : 如果我们想去匹配多个字符,可以用 括号包裹起来
//表示匹配的字符中 ab要出现一次以上
(ab)+c
或运算符
- |:匹配出现其中的一个
// A|B 匹配 A 或者B
//匹配出现 a cat 或者 a dog
a (cat|dog)
//匹配出现a cat 或者 dog
a cat|dog
- [] :表示要去匹配的字符只能取之于他们
//匹配出a、b、c 这三个字符
[abc]
可以用范围
//a-zA-Z 代表所有的英文字符
[a-zA-Z]
//代表所有的数字字符
[0-9]
- [^] 表示匹配 这个范围之外的字符
//表示匹配非数字
[^0-9]
元字符
- \d : 表示数字字符 等同于[0-9]
-
\w :表示单词字符 表示所有的数字,英文字符 下划线 等同于[a-zA-Z0-9_]
-
\s : 代表空白
-
\D : 代表非数字字符
-
\W : 代表非单词字符
-
\S : 代表非空白字符
-
.
-
.代表任意字符 但不代表换行符
-
^ 会去匹配行首 $获取匹配行尾
//会去匹配行首的a
^a
//会去匹配行尾的a
a$
贪婪匹配和懒惰匹配
例如<.+> 会将 之间的全部匹配
但是我们直线匹配在 可以加上? 改成惰性匹配