メインコンテンツにスキップ
モジュール 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[1] を参照する代わりに、match.groups.name にアクセスします。パターン自体の内部では、\\k<name> 構文を使用してそれらの参照が行われます。

試してみてください

運動#regex.m4.l4.e1
試行回数: 0読み込み中…

グループ「anno」、「mese」、「giorno」に名前を付けたすべての日付を YYYY-MM-DD 形式で検索します。

エディターを読み込み中…
ヒントを表示

構文: (?&lt;名前&gt;パターン)。一致すると、「名前付き」エントリの下のグループが表示されます。

3 回の試行後に解決策が利用可能になります

復習演習

運動#regex.m4.l4.e2
試行回数: 0読み込み中…

連続した重複する単語を検索します (例: `il il`、`casa casa`)。最初のグループにはグループを使用し、2 番目のグループには後方参照 `\\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.

エディターを読み込み中…
ヒントを表示

名前 (?&lt;タグ&gt;\\w+) を割り当て、\\k&lt;タグ&gt; で閉じます。

3 回の試行後に解決策が利用可能になります