1.单词界定符
如: \b 匹配的字符串要为一个完整的单词。
而:\B 匹配的字符串不能是一个完整的单词,而是其他单词或字符串的一部分
2.字符类( [ ] )
[ ] 一个方括号只能匹配一个字符。
3.选择字符 ( | )
( | ) 选择字符,可以理解为”或”。
使用 ” [ ] ” 和 ” | “的区别在于,” [] “只能匹配单个字符,而” | “可以匹配任意长度的字符。
4.连接符(-)
[a-zA-Z],表示所有字母。
5.排除字符([^])
[^a-zA-Z],表示所有非字母。
6.限定符( ? * + {n,m})
? 匹配前导字符0次或1次,即表示前导字符是可选的。
/love?mo/ 表示e 0次或1次
* 匹配前导字符0次或多次。
/love*mo/ 表示e 0次或多次
+ 匹配前导字符1次或多次
/love*mo/ 表示e 1次或多次
{ } 正则表达式的规则还允许我们使用一对限定符,
格式如下: {min,max}
其中,min,max都是非负数,表示重复的次数在min和max之间,即至少重复min次,最多重复max次,如果没有max,表示重复的次数没有上限,即至少重复min次。如果同时没有’,’和max,表示重复min次。
/love{1,3}mo/ 表示字母e至少重复1次,最多重复3次。
/love{1,}mo/ 表示字母e至少重复1次
/love{1}mo/ 表示字母e重复1次。
7.点号字符( . )
( . )点号字符可以匹配除换行符外的任意一个字符。
8.转义字符( \ )
9.括号字符( ( ) )
10.反向引用
11.模式修饰符
12. [\b] 匹配一个空格
13. \b 匹配一个单词的分界线
如,"/\bn\w/",匹配"noonday"中的"no","/\wy\b/"匹配"possibly yesterday"中的"ly"。
14. \B 匹配一个单词的非分界线
例,"/\w\Bn/"匹配"noonday"中的"on","/y\B\w/"匹配"possibly yesterday"中的"ye".
15. [\b]匹配一个空格
16. \cX
X是一个控制字符。匹配一个字符串的控制字符。例如,"\cM"匹配一个字符串中的control-M
17. \d
匹配一个数字,等价于"[0-9]"
18. \D
匹配任何的非数字,等价于"[^0-9]"。
19. \f 匹配一个表单符
20. \n 匹配一个换行符
21. \r 匹配 一个回车符
22. \s 匹配单个white空格符,包括空格、tab、form feed、换行符,等价于”[ \f\n\r\t\v]”。例如,”/\s\w*/”匹配”foo bar”中的”bar”。
23. \S 匹配一个制表符
24. \v 匹配一个顶头制表符
25. \t 匹配一个制表符
26. \w 匹配所有的数字和字母以及下划线,等价于”[A-Za-z0-9]”。例如,”/\W/”匹配”apple”中的”a”,”$5.28”中的”5”和”3D”中的”3”。
27. \W 匹配除数字,字母及下划线外的其他字符,等价于”[^A-Za-z0-9]”
28. \n 这里的n是一个整数。匹配一个正则表达式的最后一个子串的n的值(计数左圆括号)。如,”/apple(,)\sorange\1\/”,匹配”apple,orange,cherry,peach”中的”apple,orange”。需要注意的是,如果左圆括号中的数字比”\n”指定的数字还小,则”\n”则取下一行的八进制escape作为描述。
29. \ooctal 和 \xhex 这里的”\ooctal” 是一个八进制的escape值,而”\xhex”是一个十六进制的escape值,允许在一个正则表达式中嵌入ASCII码。
30. ” . ” 匹配除了”\n”以外的任何单个字符。
31. “( )” 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用”(” 和 “)”。
"(.)\l"匹配除了"\n"以外的两个连续的相同字符。诺要匹配包括"\n"在内的任意字符,可以使用"[\s\S]","[\d\D]"或"[\w\W]"等模式。若要匹配"."字符本身,需要使用"\."。