匹配数字
- 匹配一个数字,0 ~ 9
/[0-9]/
/\d/
- 匹配多个数字
/[0-9]+/
/\d+/
- 匹配指定个数的数字,例如 1~3 个
/[0-9]{1,3}/
/\d{1,3}/
匹配字符
- \s
匹配空白字符,包括空格、换行、tab 缩进等
- \S
匹配非空白字符,与\s 相反
- [\s\S]
匹配所有字符
- \w
匹配单词字符,等于 [A-Za-z0-9_]
- \W
匹配非单词字符,和\W 相反
匹配字符串
- 匹配所有内容
/[\s\S]*/
/[\w\W]*/
匹配模式
+
前导字符必须在目标字符串中连续出现 1 次或 n 次
/\d+/
*
前导字符必须在目标字符串中出现 0 次或连续 n 次
/\d*/
?
前导对象必须在目标字符串中连续出现 0 次或 1 次
/\d?/
^
定位字符串第一个 1 字符
/^\d/
$
/\d$/
定位字符串最后一个 1 字符
贪婪匹配
- 贪婪模式
/\([\w\W]*\)/.exec("(add (mul 1 2) 3)")
结果:(add (mul 1 2) 3)
- 非贪婪模式
在\)
前面加?号表示,遇到第一个 ) 就结束
/\([\w\W]*?\)/.exec("(add (mul 1 2) 3)")
结果:(add (mul 1 2)