# 正则表达式

正则表达式是国际标准,跨越语言

正则表达式是一个规则,用于验证字符串。

# 基础

  1. 字面量匹配

规则中直接书写字面量字符

  1. 特殊字符
.   
^
$
1
2
3
  1. 转义符
\n
\r
\t
\s
\S
\b
\B
\d
\D
\w
\W
\u
1
2
3
4
5
6
7
8
9
10
11
12

转义符可以将特殊字符转义

  1. 字符集
[字符范围]
1

匹配中文: [\u4e00-\u9FA5]

  1. 量词

前面的规则出现的次数

*
+
?
{n}: 匹配n个
{n,}: 匹配>=n个
{n,m}: 匹配n-m个
1
2
3
4
5
6

# JS中的应用

js中,正则表达式表现为一个对象,该对象是通过构造函数RegExp

# 创建正则对象

  1. 字面量模式
  2. 构造函数模式

# 正则实例成员

  • global
  • ignoreCase
  • multiline
  • source
  • test方法:验证某个字符串是否满足规则
  • exec方法:execute,执行匹配,得到匹配结果。

正则表达式,默认情况下,适用贪婪模式 在量词后,加上?,表示进入非贪婪模式

# 字符串对象中的正则方法

  • split
  • replace
  • search
  • match

# 进阶

# 捕获组

用小括号包裹的部分叫做捕获组,捕获组会出现在匹配结果中

捕获组可以命名,叫做具名捕获组

非捕获组

# 反向引用

在正则表达式中,使用某个捕获组,\捕获组编号

# 正向断言(预查)

检查某个字符后面的字符是否满足某个规则,该规则不成为匹配结果,并且不称为捕获组

# 负向断言(预查)

检查某个字符后面的字符是否不满足某个规则,该规则不成为匹配结果,并且不称为捕获组