非打印字符
字符 | 含义 |
---|---|
\f | 匹配一个换页符 |
\n | 匹配一个换行符 |
\r | 匹配一个回车符 |
\t | 匹配一个制表符 |
\v | 匹配一个垂直制表符 |
\s | 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 |
\S | 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 |
字符类
字符 | 含义 |
---|---|
[...] | 在括号内的任意字符。要匹配 [,使用 [ |
[^...] | 不在括号内的任意字符 |
. | 匹配除换行符 \n 之外的任何单字符。要匹配 . ,使用 . |
\d | 任意一个数字,0~9 中的任意一个,[0-9] |
\D | 非数字,[^0-9] |
\w | 任意一个字母、数字、下划线 ,[a-zA-Z0-9_] |
\W | 非字母、数字、下划线 ,[^a-zA-Z0-9_] |
重复字符
字符 | 含义 |
---|---|
{n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。 |
{n,} | n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。 |
{n} | n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。 |
? | 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。等价于 {0,1} |
+ | 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。等价于 {1,} |
* | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。等价于{0,} |
选择、分组、引用
字符 | 含义 |
---|---|
| | 指明两项之间的一个选择。 |
(...) | 组合。将几个项目组合为一个单元,并记忆这个组合匹配的字符以供引用 |
(?...) | 只组合。将几个项目组合为一个单元,但不记忆这个组合匹配的字符 |
\数字 | 和第几个分组第一次匹配的字符相匹配 |
锚点字符
字符 | 含义 |
---|---|
^ | 在方括号外匹配输入字符串的开始位置 [...],在方括号内表示不接受该方括号表达式中的字符集合[...]。 |
$ | 匹配输入字符串的结尾位置。 |
\b | 匹配单词边界,即位于\w和\W之间,或\w与字符串开头或结尾处。注意[\b]是匹配退格符backspace
|
\B | 匹配非单词边界,即左右两边都是 "\w" 范围或者左右两边都不是 "\w" 范围时的字符缝隙 |
(?=p) | 正前向声明,要求接下来的字符都与模式p匹配,但是不包括匹配的那些字符 |
(?!p) | 反前向声明,要求接下来的字符不与模式p匹配 |
锚点字符
字符 | 含义 |
---|---|
i | 不区分大小写 |
g | 全局匹配,找到所有匹配结果,而不是找到第一个就停止 |
m | 多行匹配 |
JavaScript 方法
str.search (reg)
返回第一个匹配的子串的开始字符的位置,没匹配的就返回-1
str.replace (reg, str2)
把匹配reg的子串替换成str2
str.match (reg)
返回匹配的结果的数组
str.split(reg)
返回按正则要求切分字符串的数组
reg.exec(str)
与 str.match (reg) 相似,只不过调用的对象和参数相反
reg.test (str)
字符串包含正则匹配则返回true
。