正则表达式

正则表通常被用来检索、替换那些符合某个模式(规则)的文本

组成

边界符

边界符说明
^表示匹配行首的文本(以谁开始)
$表示匹配行尾的文本(以谁结束)
( )标记一个子表达式的开始和结束位置

1、 ()

/([1-9])([a-z])/g

匹配 1a2b -> 1a 2b

圆括号会有一个副作用,使相关的匹配会被缓存,此时可用 ?: 放在第一个选项前来消除这种副作用

字符类

[]方括号

一系列字符可供选择,只要匹配其中一个就可以了

量词符

量词说明
*重复0次或更多次, 要匹配 * 字符,使用 *
+重复1次或更多次, 要匹配 + 字符,使用 +
?重复0次或1次, 要匹配 ? 字符,使用 ?
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

特殊字符

特殊字符说明
``

修饰符

预定义类

预定类说明
\cx匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符
\f匹配一个换页符
\n换行符
\r回车符
\t匹配一个制表符
\v匹配一个垂直制表符
\d匹配0-9之间的任一数字, 相当于[0-9]
\D匹配所有0-9以外的字符,相当于[^0-9]
\w匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_ ]
\W除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_ ]
\s匹配空格(包括换行符、制表符、空格符等),相等 于[ \tlr\n\v\f]
\S匹配非空格的字符,相当于[^ \tlr\n\v\f]
\b匹配一个单词边界,即字与空格间的位置
\B非单词边界匹配

运算符的优先级

从高到低: