Cách kiểm tra biểu thức chính quy trực tuyến
Biểu thức chính quy là một trong những công cụ mạnh nhất trong lập trình — và là một trong những công cụ gây thất vọng nhất để thành thạo. Một trình kiểm tra regex cho phép xây dựng và gỡ lỗi các mẫu một cách tương tác thay vì chạy mã của bạn, kiểm tra đầu ra và đoán xem điều gì sai.
Tại sao sử dụng trình kiểm tra regex
Viết một regex trong trình soạn thảo của bạn có nghĩa là bạn chỉ thấy lỗi khi thực thi. Một trình kiểm tra hiển thị cho bạn:
- Tô sáng trực tiếp — xem chính xác phần nào của văn bản của bạn khớp khi bạn gõ mẫu
- Nhóm chụp — xem những gì mỗi nhóm chụp được mà không cần viết gỡ lỗi
- Chi tiết khớp — vị trí, độ dài và nội dung chính xác của mỗi khớp
- Xem trước thay thế — xem kết quả của một tìm-và-thay-thế trước khi áp dụng
Cách kiểm tra regex trực tuyến
- Nhập mẫu của bạn — gõ regex vào trường mẫu. Kích hoạt các cờ (g cho toàn cục, i cho không phân biệt hoa thường, m cho đa dòng) theo nhu cầu của bạn.
- Dán văn bản kiểm tra của bạn — nhập văn bản để kiểm tra. Các khớp được tô sáng theo thời gian thực.
- Xem kết quả — xem tất cả các khớp với các nhóm chụp được liệt kê bên dưới. Sử dụng trường « Thay thế bằng » để kiểm tra các thay thế.
Các mẫu regex phổ biến cần biết
Địa chỉ email (cơ bản):
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
URL:
https?://[^\s]+
Số điện thoại (US):
\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
Ngày (YYYY-MM-DD):
\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])
Địa chỉ IP (IPv4):
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
Mẹo để viết regex tốt hơn
- Bắt đầu đơn giản — đầu tiên có một mẫu cơ bản hoạt động, sau đó thêm độ phức tạp. Cố gắng viết regex hoàn hảo ngay lần đầu hiếm khi hoạt động.
- Sử dụng cờ toàn cục (g) — không có nó, trình kiểm tra dừng ở khớp đầu tiên. Với
g, bạn thấy tất cả các khớp trong văn bản. - Kiểm tra các trường hợp giới hạn — regex của bạn có thể khớp các trường hợp rõ ràng và thất bại trên các chuỗi trống, ký tự đặc biệt hoặc các điều kiện ranh giới. Thêm chúng vào văn bản kiểm tra của bạn.
- Thoát các ký tự đặc biệt —
.,*,+,?,(,),[,],{,},\,^,$và|có ý nghĩa đặc biệt trong regex. Để khớp chúng theo nghĩa đen, hãy đặt một dấu gạch chéo ngược trước chúng. - Sử dụng nhóm không chụp — nếu bạn cần dấu ngoặc đơn để nhóm mà không chụp, hãy sử dụng
(?:...)thay vì(...). Điều này giữ kết quả của bạn sạch hơn.
Câu hỏi thường gặp
Regex của tôi có hoạt động trong các ngôn ngữ lập trình khác không?
Hầu hết cú pháp regex được chia sẻ giữa JavaScript, Python, Java, PHP và những ngôn ngữ khác. Các mẫu cơ bản (lớp ký tự, lượng từ, mỏ neo) hoạt động ở khắp mọi nơi. Một số tính năng nâng cao như lookbehind hoặc nhóm có tên khác nhau giữa các ngôn ngữ.
Dữ liệu kiểm tra của tôi có được gửi đến máy chủ không?
Không. Tất cả việc khớp diễn ra cục bộ trong trình duyệt của bạn với engine RegExp gốc của JavaScript. Không có gì được gửi đi nơi khác.
Tôi có thể kiểm tra các thay thế không?
Có. Nhập một mẫu thay thế (sử dụng $1, $2, v.v. cho các nhóm chụp) để xem kết quả của tìm-và-thay-thế theo thời gian thực.
Nó có hoạt động ngoại tuyến không?
Có. Khi trang được tải, công cụ hoạt động hoàn toàn trong trình duyệt của bạn mà không cần kết nối Internet.