模块 4 · 第 4 课(共 4)课程中的16/32~12 min
模块课程(4/4)
命名组和反向引用
当组数量增加时,请记住 $2 是“月份”,$5 是“月份”
是“年”变得脆弱。 (?<name>...) 语法允许您
命名一个组:您可以通过 groups.name 按名称访问它(并且在
替换为 $<name>)。
Code
Pattern: (?<anno>\d{4})-(?<mese>\d{2})-(?<giorno>\d{2})
Sample: 2024-03-15
Gruppi:
anno = "2024"
mese = "03"
giorno = "15"编辑器会在比赛旁边显示已命名的组。
反向引用
反向引用允许您在同一模式内, 到之前的捕获。语法:
\1,\2, … -- 编号参考(到组 1、2、…)。\k<name>-- 命名引用。
Code
Pattern: \b(\w+)\s+\1\b
Sample: un test un test il il gatto
^^^^^它匹配 连续的重复单词: (\w+) 捕获一个单词,然后
\s+\1 需要一个空格和 相同 单词。
自记录代码和命名反向引用
命名组提高了 JavaScript 代码的可读性:您访问 match.groups.name,而不是引用 match[1]。在模式本身内部,引用它们是使用 \\k<name> 语法完成的。
尝试一下
锻炼#regex.m4.l4.e1
尝试:0加载中...
以 YYYY-MM-DD 格式查找每个日期,并将其命名为“anno”、“mese”、“giorno”组。
正在加载编辑器...
显示提示
语法:(?<名称>模式)。匹配显示“命名”条目下的组。
3 次尝试后可用的解决方案
复习练习
锻炼#regex.m4.l4.e2
尝试:0加载中...
查找连续的重复单词(例如“il il”、“casa casa”)。对第一个使用组,对第二个使用反向引用“\\1”。
正在加载编辑器...
显示提示
\\b(\\w+)\\s+\\1\\b:第一个单词是 (\\w+),然后是一个空格,然后是相同的单词 \\1。
3 次尝试后可用的解决方案
额外的挑战
锻炼#regex.m4.l4.e3
尝试:0加载中...
Find HTML/XML tag pairs (e.g. `<b>text</b>` or `<i>text</i>`) ensuring that the closing tag matches the opening tag using a named backreference.
正在加载编辑器...
显示提示
指定名称 (?<tag>\\w+) 并以 \\k<tag> 结束。
3 次尝试后可用的解决方案