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

Thay thế: `|`

pipe | là OR của biểu thức chính quy: mẫu khớp nếu một trong các các lựa chọn thay thế phù hợp. Độ ưu tiên của nó rất thấp: | tách biệt mọi thứ ở bên trái và bên phải của nó cho đến nhóm kèm theo hoặc điểm bắt đầu của mẫu.

Code
Pattern: cane|gatto|criceto
Sample:  Ho un cane, un gatto e un criceto.
               ^^^^     ^^^^^         ^^^^^^^

Ưu tiên của các dấu ngoặc đơn

Không có dấu ngoặc đơn, các lựa chọn thay thế sẽ trải dài từ đầu đến cuối mẫu. Gần như bạn luôn muốn giới hạn OR ở một phần của mẫu: gói nó vào một nhóm.

Code
Pattern   Significato (errato vs corretto)
^a|b$     "inizio + a" oppure "b + fine"           (probabilmente sbagliato)
^(a|b)$   "inizio + (a oppure b) + fine"           (probabilmente giusto)

Về thứ tự điển hình của các lựa chọn thay thế: đặt nhất những cái cụ thể/dài nhất trước tiên. Động cơ cố gắng di chuyển từ trái sang phải và dừng ở cái đầu tiên khớp: gat|gatto sẽ luôn chỉ khớp gat.

Ưu tiên và cô lập các lựa chọn thay thế

Toán tử | có mức độ ưu tiên rất thấp. Nếu bạn viết ^abc|def$, bạn đang tìm kiếm "một chuỗi bắt đầu bằng abc HOẶC một chuỗi kết thúc bằng def". Để tìm "bắt đầu chuỗi theo sau là abc hoặc def, theo sau là cuối chuỗi", bạn phải viết ^(abc|def)$.

Hãy thử nó

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

Tìm mọi lần xuất hiện của ba con vật `mía`, `gatto`, `criceto` trong văn bản (theo bất kỳ thứ tự nào).

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

Đường ống ngăn cách các lựa chọn thay thế. Sử dụng cờ g để bắt tất cả.

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.l2.e2
Nỗ lực: 0Đang tải…

CHỈ tìm các từ `gennaio` hoặc `febbraio` dưới dạng toàn bộ từ (sử dụng `\\b` để tránh khớp bên trong các từ dài hơn). Sử dụng dấu ngoặc đơn để hạn chế sự thay thế.

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

\\b(gennaio|febbraio)\\b neo sự lựa chọn vào toàn bộ từ.

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

Thử thách bổ sung

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

Tìm tên tệp kết thúc bằng phần mở rộng `.jpg`, `.png` hoặc `.gif`.

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

Sử dụng đường ống bên trong một nhóm để xen kẽ giữa các phần mở rộng.

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