正则表达式,又称规则表达式,它通常被用来检索、替换那些符合某个模式(规则)的文本。
在正式书写下面的内容之前,先安利一个非常好用的正则工具
详见https://jex.im/regulex/
-
在JavaScript中使用正则表达式:
var reg = /\bword\b/g (\b单词边界,g为进行全局匹配)
var reg = new RegExp(’\bword\b’,‘g’) (此处两个反斜线\,是因为需要转义)
-
修饰符
i 忽略大小写
m 进行多行搜索 -
匹配a或b或c,可以使用[abc]
匹配0到9的数字时,可以使用[0-9]
匹配0到9的数字和- -
正则预定义类
. 等价于 [^\r\n],意思是匹配除了回车和换行外的所有字符
\d 等价于 [0-9]
\D 等价于 [0-9],其中是取反的意思
\s [\t\n\x0B\f\r],表示空白符
\w [a-zA-Z_0-9],表示单词字符
同理\S,\W分别表示非空白符和非单词字符。 -
正则表达式中的量词
匹配0次或1次,使用?
至少匹配1次,使用+
匹配任意次,则使用*
匹配n次,使用{n}
匹配n到m次,使用{n,m}
匹配至少n次,使用{n,}
需要注意,匹配至多m次,使用{0,m},而不是{,m}
- 贪婪模式和非贪婪模式
如图中所示,匹配尽可能多次,若要进行最少次数的匹配,则只需要在量词后面加入?即可 - 正则中的分组
使用()进行分组,可以用$1 $2进行捕获,这种分组捕获的方式,为反向引用。
分组,捕获图示