- Bài viết này thảo luận về cách tính hiệu và giao của hai biểu thức chính quy (regexes).
- Tác giả trình bày quy trình bằng cách đưa ra các phương trình và kết quả như α < β = false, α = β = true, α > β = false, α & β = α ^ β = ∅, α - β = ∅.
- Bài viết cũng bao gồm phần giới thiệu ngắn gọn về cú pháp biểu thức chính quy như sau:
- '.' khớp với bất kỳ ký tự đơn nào
- 'xy' là phép nối: khớp với x rồi đến y
- 'x|y' là phép thay thế: khớp với x hoặc y
- 'x*' là Kleene star: khớp với x từ 0 lần trở lên
- '(xyz)' là nhóm: xem xyz như một mục đơn
- '()' là biểu thức chính quy rỗng, khớp với chuỗi rỗng
- 'x+' là Kleene plus: khớp với x từ 1 lần trở lên
- 'x?' là tùy chọn: có thể khớp với x hoặc không
- 'x{n}' là lũy thừa: nối x với chính nó n lần
- 'x{m,n}' là lặp: nối x với chính nó từ m đến n lần
- '[a-z0-9]' là nhóm: khớp với bất kỳ ký tự đơn nào trong nhóm
- '[^a-z0-9]' là nhóm phủ định: khớp với bất kỳ ký tự đơn nào không thuộc nhóm
- '\c' là escape: khớp với ký tự đặc biệt c
- '\u001a' là Unicode escape: khớp với ký tự UTF-16 tương ứng
- 'a, b, c' là mọi ký tự khác sẽ khớp với chính nó.
- Bài viết này cũng đề cập đến các tính năng không được hỗ trợ như anchor, zero-width assertion, backreference, trích xuất nhóm con, tìm kiếm hoặc khớp một phần, và các cờ khác làm thay đổi hành vi.
- Để biết thêm chi tiết, tác giả đề nghị tham khảo trang GitHub của 'antimirov'.
- Tác giả của bài viết này là Eiríkr Åsheim, được biết đến trên Twitter và Mastodon với tên @d6.
1 bình luận
Ý kiến trên Hacker News