モジュールのレッスン (4/4)
名前付きグループと後方参照
グループの数が増えた場合は、$2 が「月」であり、$5 であることに注意してください。
「年」は脆くなる。 (?<name>...) 構文を使用すると、
グループに名前を付けます: groups.name (および
$<name> として置き換えられます)。
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>-- 名前付き参照。
Pattern: \b(\w+)\s+\1\b
Sample: un test un test il il gatto
^^^^^連続する重複する単語に一致します: (\w+) は単語をキャプチャし、その後
\s+\1 にはスペースと 同じ 単語が必要です。
自己文書化コードと名前付き後方参照
名前付きグループにより、JavaScript コードの可読性が向上します。match[1] を参照する代わりに、match.groups.name にアクセスします。パターン自体の内部では、\\k<name> 構文を使用してそれらの参照が行われます。
試してみてください
グループ「anno」、「mese」、「giorno」に名前を付けたすべての日付を YYYY-MM-DD 形式で検索します。
ヒントを表示
構文: (?<名前>パターン)。一致すると、「名前付き」エントリの下のグループが表示されます。
3 回の試行後に解決策が利用可能になります
復習演習
連続した重複する単語を検索します (例: `il il`、`casa casa`)。最初のグループにはグループを使用し、2 番目のグループには後方参照 `\\1` を使用します。
ヒントを表示
\\b(\\w+)\\s+\\1\\b: 最初の単語は (\\w+)、次にスペース、そして同じ単語 \\1 です。
3 回の試行後に解決策が利用可能になります
追加の課題
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.
ヒントを表示
名前 (?<タグ>\\w+) を割り当て、\\k<タグ> で閉じます。
3 回の試行後に解決策が利用可能になります