概述
正则表达式是事先声明一组规则,用于匹配字符串中的字符。
基本语法
元字符
在正则表达式的模式中,有一些字符是有特殊含义的,被称为元字符
。元字符都是针对单个字符匹配的。
\w
匹配大小写英文字符及数字 0 到 9 之间的任意一个及下划线,相当于 [a-zA-Z0-9_]
\W
不匹配大小写英文字符及数字 0 到 9 之间的任意一个,相当于 [^a-zA-Z0-9_]
\s
匹配任何空白字符,相当于 [ \f\n\r\t\v]
\S
匹配任何非空白字符,相当于 [^\s]
\d
匹配任何 0 到 9 之间的单个数字,相当于 [0-9]
\D
不匹配任何 0 到 9 之间的单个数字,相当于 [^0-9]
[\u4e00-\u9fa5]
匹配任意单个汉字(这里用的是 Unicode 编码表示汉字的 )
界定符
比较通用的正则表达式界定符是双斜杠 /regex/
原子的概念
正则表达式中的原子分为可见原子和不可见原子。
[ \f\n\r\t\v]
属于不可见原子,其他表示可见原子
量词
\*
匹配 0 到多个元字符,相当于 {0,}
?
匹配 0 到 1 个元字符,相当于 {0,1}
{n}
匹配 n 个元字符
{n,}
匹配至少 n 个元字符
{n,m}
匹配 n 到 m 个元字符
\+
匹配至少 1 个元字符,相当于 {1,}
边界
\b
匹配单词边界
^
字符串必须以指定的字符开始
$
字符串必须以指定的字符结束
捕获分组
正则表达式中,使用 ()
将若干单位(可以是字符,正则表达式)组织在一起,成为一个独立单元。
正则表达式中,分组分为捕获分组和非捕获分组。
/(pattern)/flags
模式修正
贪婪/懒惰,忽略大小写,忽略空白字符
使用场景
表单验证,模板引擎