Gần đây tôi đã có một cuộc tranh luận thân thiện với Ghoti về những gì tạo thành một biểu thức chính quy trong các bình luận cho câu trả lời của tôi cho câu hỏi này . Tôi tuyên bố rằng sau đây là một biểu thức chính quy:
`[Rr]eading[Tt]est[Dd]ata`
Ghoti không đồng ý, thay vào đó tuyên bố nó là một tập tin toàn cầu. Các glob trang trên tuyên bố wikipedia đó (tôi nhấn mạnh):
Globs không bao gồm cú pháp cho ngôi sao Kleene, cho phép lặp lại nhiều phần của biểu thức trước; do đó chúng không được coi là biểu thức chính quy, có thể mô tả một tập hợp lớn hơn các ngôn ngữ thông thường trên bất kỳ bảng chữ cái hữu hạn nào.
Tuy nhiên, không có trích dẫn nào cho tuyên bố này, chỉ ra rằng đó chỉ là ý kiến của một biên tập viên wikipedia cụ thể.
Các Single UNIX ® Thông số kỹ thuật, phiên bản 2 , các quốc gia mà một Regular Expression cơ bản (BRE) thậm chí có thể là một nhân vật duy nhất:
Một ký tự bình thường là một BRE khớp với chính nó: bất kỳ ký tự nào trong bộ ký tự được hỗ trợ, ngoại trừ các ký tự đặc biệt BRE được liệt kê trong các ký tự đặc biệt BRE.
Vậy, định nghĩa của biểu thức chính quy trong thế giới * nix là gì và định nghĩa đó có loại trừ các tập tin không?
*
có hai ý nghĩa khác nhau trong BRE và globs. Lưu ý: Tôi không nghĩ thuật ngữ toàn cầu được sử dụng ở bất kỳ đâu trong thông số POSIX - thay vào đó, nó được gọi là Kết hợp mẫu và được mô tả trong chương ngôn ngữ hệ vỏ.
grep
,sed
vàawk
. Vim sử dụng sự đa dạng của riêng mình, cũng như Perl.