\s 匹配任何空白字符
\S 匹配任何非空白字符
\d 匹配一个数字字符
\D 匹配一个非数字字符
\w 匹配字母数字下划线
\W 匹配非字母数字下划线
\num 匹配一个正整数num,如/(.)\1/匹配两个连续的相同字符
^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结尾位置,匹配$本身用\$
\b 匹配一个单词边界,如/\bCha/匹配Chapter的Cha、/ter\b/匹配Chapter的ter
\B 匹配一个单词的非边界,如/\Bapt/或/apt\B/匹配Chapter的apt
() 标记子表达式的开始和结束位置
* 匹配前面的子表达式0次以上
+ 匹配前面的子表达式1次以上
? 匹配前面的子表达式0次或一次
{n} 匹配前面的子表达式n次
{n,} 匹配前面的子表达式n次以上
{n,m} 匹配前面的子表达式n到m次
. 匹配除了换行符\n以外的任何单字符,/.|\n/匹配任何字符
[] 匹配字符集合,如/[xyz]/匹配xyz中任一字符,/[^xyz]/匹配除了xyz的任何字符
{ 标记限定符表达式的开始
| 指明两项之间的一个选择,如/x|y/匹配x或y
例如,/[0-9]{1,2}/匹配数字0到99,/[1-9][0-9]?/或/[1-9][0-9]{0,1}/匹配数字1到99
*和+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。