正则表达式中的 $1, $2 等是什么意思?

正则表达式中的 $1, $2 等符号表示匹配成功后捕获组内对应的内容。在学习正则表达式时,了解这些符号的含义及其作用非常重要。

什么是捕获组?

捕获组是指将一部分正则表达式中的匹配内容“捕获”起来以备后续使用的过程。例如,下面这个正则表达式:

------

它可以匹配连续的 a 字符串。这个正则表达式中,括号包裹的 a+ 部分被视为一个捕获组。当匹配成功时,该捕获组中的内容会被存储起来,以便后续使用。

如何使用捕获组

在正则表达式中使用捕获组时,我们可以使用 $1, $2 等符号来访问对应的捕获组内容。

例如,下面这个正则表达式:

--------------

它可以匹配两个由空格隔开的单词,并且将这两个单词分别存储到第一个和第二个捕获组中。我们可以使用 $1$2 来获取这两个捕获组的内容,例如:

----- --- - ------ ------
----- ----------- - -------------------------

--------------------------- -- ----------
--------------------------- -- ----------

上面的代码中,matchResult[1]matchResult[2] 分别代表了正则表达式中第一个和第二个捕获组的内容。

$0 的含义

除了 $1, $2 等符号外,还有一个 $0 符号。它表示整个匹配成功的字符串。例如,下面这个正则表达式:

-------

可以匹配所有包含 hello 子串的字符串。当匹配成功时,$0 将会返回匹配到的完整字符串。

例如,下面的代码:

----- --- - ------ ------
----- ----------- - ------------------

--------------------------- -- ----------

上面的代码中,matchResult[0] 表示正则表达式匹配到的完整字符串。

总结

在正则表达式中,使用捕获组可以将匹配到的部分存储起来以供后续使用。而 $1, $2 等符号则可以访问对应的捕获组内容。此外,$0 可以访问整个匹配成功的字符串。掌握这些符号的含义和用法对于正则表达式的学习和应用非常重要。

示例代码

下面是一个示例代码,它演示了如何使用捕获组和 $1, $2 等符号来获取匹配结果:

----- --- - ------ ------
----- ----------- - -------------------------

--------------------------- -- --------- ------
--------------------------- -- ----------
--------------------------- -- ----------

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/28705