Chuyển đến nội dung chính
Mô-đun 4 · Bài học 4 trong tổng số 416/32 trong khóa học~12 min
Bài học theo mô-đun (4/4)

Các nhóm được đặt tên và tài liệu tham khảo ngược

Khi số lượng nhóm tăng lên, hãy nhớ rằng $2 là "tháng" và $5 là “năm” trở nên mong manh. Cú pháp (?<name>...) cho phép bạn đặt tên một nhóm: bạn truy cập nhóm đó theo tên thông qua groups.name (và trong thay thế dưới dạng $<name>).

Code
Pattern: (?<anno>\d{4})-(?<mese>\d{2})-(?<giorno>\d{2})
Sample:  2024-03-15
Gruppi:
  anno    = "2024"
  mese    = "03"
  giorno  = "15"

Trình chỉnh sửa hiển thị các nhóm được đặt tên bên cạnh trận đấu.

Phản chiếu ngược

tham chiếu ngược cho phép bạn tham khảo, trong cùng một mẫu, tới lần chụp trước đó. Cú pháp:

  • \1, \2, … -- tham chiếu được đánh số (đến nhóm 1, 2, …).
  • \k<name> -- tham chiếu có tên.
Code
Pattern: \b(\w+)\s+\1\b
Sample:  un test un test il il gatto
                                ^^^^^

Nó khớp với các từ trùng lặp liên tiếp: (\w+) ghi lại một từ, sau đó \s+\1 yêu cầu một khoảng trắng và từ giống nhau.

Mã tự ghi lại và các tham chiếu ngược được đặt tên

Các nhóm được đặt tên cải thiện khả năng đọc mã JavaScript: thay vì tham khảo match[1], bạn truy cập match.groups.name. Bên trong mẫu, việc tham chiếu chúng được thực hiện bằng cú pháp \\k<name>.

Hãy thử nó

tập thể dục#regex.m4.l4.e1
Nỗ lực: 0Đang tải…

Tìm mọi ngày ở định dạng YYYY-MM-DD đặt tên cho các nhóm `anno`, `mese`, `giorno`.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Cú pháp: (?<name>mẫu). Trận đấu hiển thị các nhóm trong mục 'được đặt tên'.

Giải pháp khả dụng sau 3 lần thử

Xem lại bài tập

tập thể dục#regex.m4.l4.e2
Nỗ lực: 0Đang tải…

Tìm các từ trùng lặp liên tiếp (ví dụ: `il il`, `casa casa`). Sử dụng một nhóm cho nhóm đầu tiên và tham chiếu ngược `\\1` cho nhóm thứ hai.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

\\b(\\w+)\\s+\\1\\b: từ đầu tiên là (\\w+), sau đó là dấu cách, sau đó là CÙNG từ \\1.

Giải pháp khả dụng sau 3 lần thử

Thử thách bổ sung

tập thể dục#regex.m4.l4.e3
Nỗ lực: 0Đang tải…

Find HTML/XML tag pairs (e.g. `**text**` or `*text*`) ensuring that the closing tag matches the opening tag using a named backreference.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Gán tên (?<tag>\\w+) và đóng nó bằng \\k<tag>.

Giải pháp khả dụng sau 3 lần thử