Để làm rõ/thêm một chi tiết khác vào câu trả lời trước: Thư viện PCRE chấp nhận mẫu dưới dạng chuỗi ký tự "C". (Trích dẫn các tài liệu PCRE: "Mẫu là một chuỗi C bị chấm dứt bởi số không nhị phân".) Điều đó có nghĩa là mẫu không thể chứa ký tự NUL bằng chữ - thay vào đó, nó phải luôn luôn được thoát bằng các phương tiện được mô tả trong các câu trả lời khác. ("Không giống như chuỗi mẫu, đối tượng có thể chứa số nhị phân." "4. Mặc dù các ký tự số không nhị phân được hỗ trợ trong chuỗi chủ đề, chúng không được cho phép trong chuỗi mẫu vì nó được chuyển thành một hoặc không mal C chuỗi, kết thúc bằng 0. Trình tự thoát \ 0 có thể được sử dụng trong mẫu để biểu diễn số không nhị phân. ")
Ký tự NUL là ký tự duy nhất trong mẫu PCRE phải được thoát, tất cả các ký tự khác có thể là chữ: "Không có giới hạn đối với sự xuất hiện của các ký tự không in, ngoài số nhị phân mà chấm dứt mẫu".
Như một lưu ý so sánh cuối cùng, một số động cơ regex tương thích Perl khác cho phép NUL theo nghĩa đen trong một mẫu, ví dụ, SRE của Python. Ví dụ. urlib.parse từ Python3 có dòng sau: _asciire = re.compile('([\x00-\x7f]+)')
. Lưu ý việc thiếu "r" để biểu thị nguyên văn bản - điều đó có nghĩa là việc bỏ định dạng ở đây xảy ra ở cấp Python và mô-đun lại nhận các ký tự có giá trị 0x00 và 0x7f trong mẫu.
cảm ơn. hoạt động tốt nhưng không thể có bất kỳ công cụ 'trực quan' nào của tôi để làm việc với null nhưng Grep của Regex Buddy sẽ làm điều đó đằng sau hậu trường. – Keng
Dường như ['\ x0' cũng hoạt động] (http://superuser.com/a/287998/2259). – l0b0
Không nên làm '\ x0' trừ khi đó là điều duy nhất bạn đang kết hợp. nếu bạn đang cố gắng khớp '\ x0apple' sẽ thử và khớp với' \ npple' – Augwa