4 ký tự có dấu gạch chéo 2 không có
Trong công cụ regex của ngôn ngữ TXR, một lớp ký tự trống không []
khớp với ký tự và do đó không có chuỗi. Nó hành xử theo cách này bởi vì lớp nhân vật yêu cầu một nhân vật phù hợp, và khi nó trống, nó xác định rằng không có nhân vật nào có thể thỏa mãn nó.
Một cách khác là đảo ngược "tập hợp tất cả các chuỗi bao gồm cả regex trống" /.*/
bằng cách sử dụng toán tử bổ sung : /~.*/
. Phần bù của tập hợp đó không chứa chuỗi nào cả, và do đó không thể khớp với bất cứ thứ gì.
Đây là tất cả tài liệu trong trang người đàn ông:
nomatch
The nomatch regular expression represents the empty set: it
matches no strings at all, not even the empty string. There is
no dedicated syntax to directly express nomatch in the regex
language. However, the empty character class [] is equivalent
to nomatch, and may be considered to be a notation for it. Other
representations of nomatch are possible: for instance, the regex
~.* which is the complement of the regex that denotes the set of
all possible strings, and thus denotes the empty set. A nomatch
has uses; for instance, it can be used to temporarily "comment
out" regular expressions. The regex ([]abc|xyz) is equivalent to
(xyz), since the []abc branch cannot match anything. Using [] to
"block" a subexpression allows you to leave it in place, then
enable it later by removing the "block".
Dấu gạch chéo không phải là một phần của cú pháp regex mỗi se; chúng chỉ là dấu chấm câu phân định biểu thức chính tả trong ký hiệu biểu thức S. Nhân chứng:
# match line of input with x variable, and then parse that as a regex
#
$ txr -c '@x
@(do (print (regex-parse x)) (put-char #\newline))' -
ab.*c <- input from tty: no slashes.
(compound #\a #\b (0+ wild) #\c) <- output: AST of regex