跳转到主要内容
模块 4 · 第 1 课(共 4)课程中的13/32~10 min
模块课程(1/4)

捕获组:`(...)`

括号 (...) 具有两个功能:

1.分组子模式,以便量词适用于整体 组((ab)+ 匹配 ab、abab、ababab)。2. 捕获匹配的子字符串,将其公开为编号组 可单独访问(组 1、2、3…从左到右基于 左括号)。

Code
Pattern: (\d{4})-(\d{2})-(\d{2})
Sample:  Data: 2024-03-15.
               ^^^^^^^^^^
Gruppi:
  match  = "2024-03-15"
  gruppo1 = "2024"
  gruppo2 = "03"
  gruppo3 = "15"

右侧的编辑器显示每场比赛下的组。

量化一个群体

如果没有括号,ab+ 表示“a 后跟一个或多个 b”。带括号 它变成“一个或多个 ab”:

Code
Pattern   Matcha su 'ababab':
ab+       'ab' (poi 'a' e 'b' separati, non collegati)
(ab)+     'ababab' come gruppo unico

捕获组索引和使用情况

每对前面没有特殊字符的括号都会创建一个编号的捕获组。第 1 组对应第一个左括号,第 2 组对应第二个,依此类推。在 JavaScript 中,您可以通过 exec 或 matchAll 返回的数组访问这些组。

尝试一下

锻炼#regex.m4.l1.e1
尝试:0加载中...

以 YYYY-MM-DD 格式查找每个日期,将年、月和日捕获为三个单独的组。

正在加载编辑器...
显示提示

将三个数字块中的每一个都括在括号中:每个数字块创建一个编号组。

3 次尝试后可用的解决方案

复习练习

锻炼#regex.m4.l1.e2
尝试:0加载中...

查找“ab”的每个重复(一个或多个)作为单个匹配项。如果没有括号,量词将仅适用于最后一个“b”。

正在加载编辑器...
显示提示

(ab)+ 将“ab”视为一个单元,并查找一个或多个连续的重复项。

3 次尝试后可用的解决方案

额外的挑战

锻炼#regex.m4.l1.e3
尝试:0加载中...

Create three capture groups to extract the day, month, and year separately from dates in the format `DD/MM/YYYY`.

正在加载编辑器...
显示提示

将每个 \\d{2} 或 \\d{4} 括在括号中。

3 次尝试后可用的解决方案