📜  正则表达式都以 - Javascript 开头(1)

📅  最后修改于: 2023-12-03 15:26:52.432000             🧑  作者: Mango

正则表达式都以 - Javascript 开头

正则表达式是一种用于描述和匹配字符串模式的方法。在 Javascript 中,我们可以使用内置的 RegExp 对象来创建和使用正则表达式。在 Javascript 中,所有的正则表达式都以 / 开头和结尾,例如:

// 匹配一个字符串中的所有数字
const regex = /\d+/g;

上述代码中,/ 开头和结尾的内容就是一个正则表达式,其中 \d+ 表示匹配一个或多个数字,g 表示全局匹配。

除了直接使用 / 开头和结尾的方式来创建正则表达式外,我们还可以使用 RegExp 对象来创建正则表达式,例如:

// 和上述代码等价的正则表达式
const regex = new RegExp("\\d+", "g");

上述代码中,使用了 new RegExp() 创建了一个正则表达式对象,其中第一个参数是字符串形式的正则表达式,需要使用 \\ 转义每个反斜杠,第二个参数则是修饰符,也可以用 / 开头和结尾来表示修饰符,例如 /g/i

接下来,我们将介绍正则表达式的常见用法:

匹配单个字符

使用正则表达式可以匹配单个字符,其中一些特殊字符具有特定的含义,例如,. 表示任意字符,[abc] 表示匹配 abc 中的任意一个字符,\d 表示匹配数字等。

以下是一些常见的用法:

| 正则表达式 | 匹配 | | --- | --- | | . | 任意字符 | | \d | 数字 | | \w | 字母、数字、下划线 | | \s | 空格、制表符、换行符等空白字符 | | [abc] | abc 中的任意一个字符 | | [^abc] | 除了 abc 外的任意一个字符 |

匹配重复字符

使用正则表达式可以匹配重复字符,其中一些特殊字符具有特定的含义,例如,* 表示匹配零个或多个重复字符,+ 表示匹配一个或多个重复字符,? 表示匹配零个或一个重复字符,{n} 表示匹配 n 个重复字符,{n,} 表示匹配至少 n 个重复字符,{n,m} 表示匹配 n 到 m 个重复字符等。

以下是一些常见的用法:

| 正则表达式 | 匹配 | | --- | --- | | * | 零个或多个重复字符 | | + | 一个或多个重复字符 | | ? | 零个或一个重复字符 | | {n} | n 个重复字符 | | {n,} | 至少 n 个重复字符 | | {n,m} | n 到 m 个重复字符 |

匹配位置

使用正则表达式可以匹配位置,其中一些特殊字符具有特定的含义,例如,^ 表示匹配行首位置,$ 表示匹配行尾位置,\b 表示匹配单词边界位置,\B 表示匹配非单词边界位置等。

以下是一些常见的用法:

| 正则表达式 | 匹配 | | --- | --- | | ^ | 行首位置 | | $ | 行尾位置 | | \b | 单词边界位置 | | \B | 非单词边界位置 |

捕获分组

使用正则表达式可以捕获分组,其中用 () 括起来的正则表达式被视为一个分组,可以使用 $1$2 等来引用分组中匹配到的内容,例如,(a)(b) 表示匹配 ab,同时分别捕获 ab

以下是一些常见的用法:

| 正则表达式 | 匹配 | | --- | --- | | (abc) | 匹配 abc,同时捕获 abc | | (a(b)c) | 匹配 abc,同时捕获 abb | | a(?:b)c | 匹配 abc,但不捕获 b |

零宽断言

使用正则表达式可以使用零宽断言,其中一些特殊字符具有特定的含义,例如,(?=pattern) 表示匹配位置为 pattern 的前面,但不包含 pattern,(?!pattern) 表示匹配位置为非 pattern 的前面。

以下是一些常见的用法:

| 正则表达式 | 匹配 | | --- | --- | | x(?=y) | 匹配 x,仅当 x 后面紧跟着 y 时 | | x(?!y) | 匹配 x,仅当 x 后面不紧跟着 y 时 |

以上是正则表达式的一些常见用法,更多用法可以参见 MDN 文档