66
77可以使用 ` pattern:\N ` 在模式中引用一个组,其中 ` N ` 是组号。
88
9- 为了弄清那为什么有帮助,让我们考虑一项任务 。
9+ 为了弄清这有什么用,让我们考虑一个任务 。
1010
11- 我们需要找到带引号的字符串:单引号 ` subject:'...' ` 或双引号 ` subject:"..." ` – 应匹配两种变体 。
11+ 我们需要找到带引号的字符串:单引号 ` subject:'...' ` 或双引号 ` subject:"..." ` —— 应匹配这两种变体 。
1212
1313如何找到它们?
1414
15- 我们可以将两种引号放在方括号中 :` pattern:['"](.*?)['"] ` ,但它会找到带有混合引号的字符串,例如 ` match:"...' ` 和 ` match:'..." ` 。当一种引号出现在另一种引号内,比如在字符串 ` subject:"She's the one!" ` 中时,便会导致不正确的匹配:
15+ 我们可以将两种引号都放在方括号中 :` pattern:['"](.*?)['"] ` ,但它会找到带有混合引号的字符串,例如 ` match:"...' ` 和 ` match:'..." ` 。当一种引号出现在另一种引号内,比如在字符串 ` subject:"She's the one!" ` 中时,便会导致不正确的匹配:
1616
1717``` js run
1818let str = ` He said: "She's the one!".` ;
@@ -23,7 +23,7 @@ let regexp = /['"](.*?)['"]/g;
2323alert ( str .match (regexp) ); // "She'
2424```
2525
26- 如我们所见 ,该模式找到了一个开头的引号 ` match:" ` ,然后文本被匹配,直到另一个引号 ` match:' ` ,该匹配结束。
26+ 正如我们所看到的 ,该模式找到了一个开头的引号 ` match:" ` ,然后文本被匹配,直到另一个引号 ` match:' ` ,该匹配结束。
2727
2828为了确保模式查找的结束引号与开始的引号完全相同,我们可以将其包装到捕获组中并对其进行反向引用:` pattern:(['"])(.*?)\1 ` 。
2929
@@ -41,25 +41,25 @@ alert( str.match(regexp) ); // "She's the one!"
4141
4242现在可以了!正则表达式引擎会找到第一个引号 ` pattern:(['"]) ` 并记住其内容。那是第一个捕获组。
4343
44- ` pattern:\1 ` 在模式中进一步的含义是“查找与第一(捕获)分组相同的文本 ”,在我们的示例中为完全相同的引号。
44+ 在模式中 ` pattern:\1 ` 表示“找到与第一组相同的文本 ”,在我们的示例中为完全相同的引号。
4545
46- 与此类似,` pattern:\2 ` 表示第二(捕获)分组的内容 ,` pattern:\3 ` – 第三分组,依此类推。
46+ 与此类似,` pattern:\2 ` 表示第二组的内容 ,` pattern:\3 ` —— 第三分组,依此类推。
4747
4848``` smart
49- 如果我们在组中使用 `?:`,那么我们将无法引用它。用 `(?:...)` 捕获的组被排除,引擎不会存储 。
49+ 如果我们在捕获组中使用 `?:`,那么我们将无法引用它。用 `(?:...)` 捕获的组被排除,引擎不会记住它 。
5050```
5151
52- ```warn header="不要搞混了: 在模式中用 ` pattern:\1 ` ,在替换项中用:` pattern:$1 ` "
53- 在替换字符串中我们使用美元符号:` pattern:$1 ` ,而在模式中 - 使用反斜杠 ` pattern:\1 ` 。
52+ ```warn header="不要搞混了:在模式中用 ` pattern:\1 ` ,在替换项中用:` pattern:$1 ` "
53+ 在替换字符串中我们使用美元符号:` pattern:$1 ` ,而在模式中 —— 使用反斜杠 ` pattern:\1 ` 。
5454```
5555
5656## 按命名反向引用:`\k<name>`
5757
58- 如果正则表达式中有很多括号对(注:捕获组),给它们起个名字方便引用 。
58+ 如果一个正则表达式中有很多括号,给它们起个名字会便于引用 。
5959
60- 要引用命名组 ,我们可以使用:`pattern:\k<name>`。
60+ 要引用命名的捕获组 ,我们可以使用:`pattern:\k<name>`。
6161
62- 在下面的示例中引号组命名为 `pattern:?<quote>`,因此反向引用为 `pattern:\k<quote>`:
62+ 在下面的示例中,带引号的组被命名为 `pattern:?<quote>`,因此反向引用为 `pattern:\k<quote>`:
6363
6464```js run
6565let str = `He said: "She's the one!".`;
0 commit comments