Điều này được bao gồm trong số TR1 proposal. Tôi sẽ cố gắng tóm tắt.
Có vẻ như thận trọng khi xây dựng dựa trên tiêu chuẩn hiện tại thay vì tự mình thực hiện.
Hai tiêu chuẩn hiện có mà chúng có thể xây dựng được xác định: POSIX REs và ECMAScript REs. Perl REs đã bị loại bỏ vì chúng không được tiêu chuẩn hóa. (Những người hợp lý nào có thể không đồng ý.) Ngoài ra, RES ECMAScript được xem như một tập hợp con đơn giản của Perl REs, bao gồm các tính năng hữu ích nhất (hoặc có lẽ là được sử dụng nhiều nhất).
Trong hai, triển khai “dài nhất bên trái” của POSIX REs không hoạt động tốt với các tính năng quan trọng, chẳng hạn như lặp lại không tham lam, và mâu thuẫn với hầu hết các công cụ RE hoạt động trong những ngày này.
Mặt khác, ECMAScript REs thiếu hỗ trợ bản địa hóa của POSIX REs. Vì vậy, họ đã mở rộng ECMAScript REs để bao gồm hỗ trợ bản địa hóa POSIX-RE.
Hỗ trợ POSIX RE được đưa vào tùy chọn vì hành vi của nó khác đủ so với RECM của ECMAScript để biện minh cho tùy chọn chuẩn. Tiêu chuẩn POSIX đi kèm với hai ngữ pháp: Cơ bản và mở rộng. Các awk, grep, và egrep REs là tất cả các biến thể tầm thường đối với các ngữ pháp POSIX cơ bản hoặc mở rộng hơn là các ngữ pháp thực sự riêng biệt.
Vì vậy: Hai tiêu chuẩn, ba ngữ pháp, sáu biến thể.
Nguồn
2015-05-29 17:53:15
Bởi vì nó chỉ * tuyệt vời? –
Biểu thức chính quy Perl ftw! –
Hãy nhớ rằng, các ngôn ngữ biểu thức chính quy đều rất giống nhau. Tôi chắc chắn rằng động cơ đằng sau chúng đều giống nhau với một số biến thể nhỏ trong trình phân tích cú pháp. – Gabe