Skip to content

正则

字符表(匹配内容)

元字符说明示例
.匹配除换行符外的任意字符
\d匹配任意一个数字[0-9]
\D与除了数字以外的任何一个字符匹配[^0-9]
\w与任意一个英文字母,数字或下划线匹配[a-zA-Z_]
\W除了字母,数字或下划线外与任何字符匹配[^a-za-z_]
\s任意一个空白字符匹配,如空格,制表符\t,换行符\n[\n\f\r\t\v]
\S除了空白符外任意一个字符匹配[^\n\f\r\t\v]

字符(开始结束)

边界符说明
^匹配字符串的开始位置。
$匹配字符串的结束位置。

正则模式修饰符

修饰符说明
i不区分大小写字母的匹配
g全局搜索所有匹配内容
m使边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。 (主要针对 ^ 和 $ )
s视为单行忽略换行符,使用. 可以匹配所有字符。 (.是除换行符外的所有字符)
yregexp.lastIndex 开始匹配
u正确处理四个字符的 UTF-16 编码

限定符

符号说明
?重复零次或一次
*重复零次或更多次
+重复一次或更多次
{n}重复 n 次
{n,} 重复 n 次或更多次
{n,m}重复 n 到 m 次

禁止贪婪

正则表达式在进行重复匹配时,默认是贪婪匹配模式,会尽量匹配更多内容,可以通过?进行修饰来禁止重复匹配。

使用说明
??重复 0 次或 1 次,但尽可能少重复
*?重复 0 次或多次,但尽可能少重复
+?重复 1 次或更多次,但尽可能少重复
{n,m}?重复 n 到 m 次,但尽可能少重复
{n,}?重复 n 次以上,但尽可能少重复

正则中 ()[]{}

^ 在 ()[]中表示否的意思。

javascript
[0-9] // 所有数字
[^0-9] // 除数字外的字符
[0-9] // 所有数字
[^0-9] // 除数字外的字符
使用说明
()匹配组,后面可以继续复用(\1,\2.....),非捕获组(?:XXX),命名捕获组(?<名称>)
[]匹配中括号里出现的字符
{}限定符

匹配所有内容

javascript
/.*/
/[\s\S]+/
/[\d\D]+/
/.*/
/[\s\S]+/
/[\d\D]+/

正则断言

使用说明
?=xx正向零宽匹配:匹配字符位置后的条件
?!xx正向零宽不匹配:匹配字符位置后的条件(非)
?<=xx负向零宽匹配: 匹配字符位置前的条件
?<!xx负向零宽不匹配:匹配字符位置前的条件(非)

字符串方法

replace

replaceAll

split

match

matchAll

正则方法

test

exec