1. 字符匹配
字符,是指在正则表达式中拥有特殊含义的字符
字符 | 含义 |
---|---|
. | (点号,小数点)匹配任意单个字符,回车和换行符除外,包括: 注意: 例如, |
\d | 匹配基本拉丁字母表中的一个数字字符。等价于 例如, |
\D | 匹配任意一个不是基本拉丁字母表中数字的字符。等价于 例如, |
\w | 匹配任意基本拉丁字母表中的数字、字母、下划线。等价于 例如, |
\W | 匹配任意基本拉丁字母表中的,非字母、数字、下划线字符。等价于 例如, |
\s | 匹配一个空白字符,包括:空格、制表符、换页符、换行符和其他 Unicode 空格。 等价于:[ \f\n\r\t\v\u00a0\u1680\u180e \u2000\u2001\u2002\u2003\u2004 \u2005\u2006\u2007\u2008\u2009\u200a \u2028\u2029\u202f\u205f \u3000]。 例如: |
\S | 匹配一个非空白字符。 等价于:[^ \f\n\r\t\v\u00a0\u1680\u180e \u2000\u2001\u2002\u2003\u2004 \u2005\u2006\u2007\u2008\u2009 \u200a\u2028\u2029\u202f\u205f\u3000]。 例如, |
\t | 匹配一个水平制表符(tab) |
\r | 匹配一个回车符(carriage return) |
\n | 匹配一个换行符(linefeed) |
\v | 匹配一个垂直制表符(vertical tab) |
\f | 匹配一个换页符(form-feed) |
[\b] | 匹配一个退格符(backspace)(不要与 \b 混淆) |
\0 | 匹配一个 NULL 字符。不要在此后面跟小数点。 |
\cX |
例如, |
\xhh | 匹配编码为 hh (两个十六进制数字)的字符。 |
\uhhhh | 匹配 Unicode 值为 hhhh (四个十六进制数字)的字符。 |
\ | 转义字符 对于那些被认为有字面意义的字符来说,表示下一个字符具有特殊用处,并且不会被按照字面意义解释。 例如: 对于那些通常特殊对待的字符,表示下一个字符不具有特殊用途,会被按照字面意义解释。 例如:* 是一个特殊字符,表示匹配某个字符 0 或多次,如 |
2. 字符集合
字符集合也叫做字符组,字符集合用方括号表示,用于查找某个范围内的字符
字符 | 含义 |
---|---|
[xyz] | 匹配集合中的任意一个字符。你可以使用连字符'-'指定一个范围。 例如:[abcd] 等价于 [a-d],匹配"brisket"中的'b'和"chop"中的'c'。 |
[^xyz] | 它匹配任意不在括号内的字符。你也可以通过使用连字符'-'指定一个范围内的字符。 例如, |
[0-9] | 查找任何从 0 至 9 的数字,等价于 \d。 |
[a-z] | 查找任何从小写 a 到小写 z 的字符。 |
[A-Z] | 查找任何从大写 A 到大写 Z 的字符。 |
[A-z] | 查找任何从大写 A 到小写 z 的字符。 |
[adgk] | 查找指定集合内的任何字符。 |
[^adgk] | 查找不在指定集合内的任何字符。 |
3. 分组与反向引用
分组用小括号表示,用户整体匹配小括号内的字符。反向引用,是指从指定位置开始向前匹配指定分组出现的次数。
字符 | 含义 |
---|---|
(x) | 匹配 例如, |
(?:x) | 匹配 x ,但不会捕获匹配项。匹配项不能够从结果数组的元素 [1], ..., [n] 或已被定义的 RegExp 对象的属性 $1, ..., $9 再次访问到。 |
\n | 反向引用,指向从正则表达式分组内容(括号中内容)在左侧出现的次数。 例如, |
(red|blue|green) | 查找指定选项中任意一项。 |
4. 边界
边界有两种:一种表示开始匹配和结束配置的位置,一种是表示单词边界
字符 | 含义 |
---|---|
^ | 开始匹配的位置,即: 匹配输入/字符串的开始。如果多行标志 例如: |
$ | 结束匹配的位置,即: 匹配输入/字符串的结尾。如果多行标志 例如: |
\b | 匹配一个零宽单词边界。如,一个字母与一个空格之间。 (不要和 例如: |
\B | 匹配一个零宽非单词边界。如,两个字母之间或两个空格之间。 例如: |
5. 数量
数量,是指进行正则表达式匹配时所能匹配到的次数
字符 | 含义 |
---|---|
x* | 匹配前面的匹配项 x 0 或多次。 例如: |
x+ | 匹配前面的匹配项 x 1 或多次。等价于 例如: |
x*? x+? | 与上面的 * 和 + 一样匹配前面的的匹配项 x,但表示最小可能匹配次数。 例如: |
x? | 匹配前面的匹配项 x 0 或 1 次。 例如: 默认情况下,正则匹配是贪婪的,即:匹配最大可匹配次数。在任何数量词 |
x(?=y) | 匹配 例如: |
x(?!y) | 匹配 例如: |
x|y | 匹配 例如: |
x{n} |
例如: |
x{n,} |
例如: |
x{n,m} | 表示匹配前面匹配项x出现至少 n 次,至多 m 次。 例如: |