元字符
-
*
匹配任意字符 -
?
匹配任意一个字符 -
.
匹配除换行符以外的任意字符 -
\w
匹配字母或数字或下划线或汉字 -
\s
匹配任意的空白符 -
\d
匹配数字 -
\b
匹配单词的开始或结束 -
^
匹配字符串的开始 -
$
匹配字符串的结束
反义
-
\W
匹配任意不是
字母,数字,下划线,汉字的字符 -
\S
匹配任意不是
空白符的字符 -
\D
匹配任意非
数字的字符 -
\B
匹配不是
单词开头或结束的位置 -
[^X]
匹配除了X以外的任意字符 -
[^aeiou]
匹配除了
aeiou这几个字母以外的任意字符
字符转义
\
注释
\#
重复模式
-
*
重复零次或更多次 -
+
重复一次或更多次 -
?
重复零次或一次 -
{n}
重复n次 -
{n,}
重复n次或者更多次 -
{n,m}
重复n到m次
字符类
[0-9] == \d
[a-z0-9A-Z_] == \w
[&?.]
[aeiou]
\(?0\d{2}[)-]?\d{8} //匹配固定电话
^0\d{2,3}-\d{7,8}$ //固定电话
^[(]?\d{2,3}[-\s)]\d{7,8}$ //固定电话 025-89289332,025 89289332, (025)89289332
(\d{1,3}\.){3}\d{1,3} //匹配IP
贪婪与懒惰
-
*?
重复任意次,但尽可能少重复 -
+?
重复1次或更多次,但尽可能少重复 -
??
重复0次或1次,但尽可能少重复 -
{n,m}?
重复n到m次,但尽可能少重复 -
{n,}?
重复n次以上,但尽可能少重复 - 贪婪(尽可能多)
a.*b (aabab) => `aabab`
- 懒惰(尽可能少)匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复
a.*?b (aabab) => `aab`
零宽断言
-
?=exp
零宽度正预测先行断言,自身出现的位置的后面能匹配表达式exp
\b\w+(?=ing\b)
I'm `sing`ing while you're `danc`ing
2020.12.15 中午
// 校验手机号
/^1[3456789][0-9]{9}$/;
||/^1[3456789]\d{9}$/ ;
[234567]
存放有可能的数据,也可以写成(2|3|4|5|6|7)
这样的形式
网友评论