Regular expressions
The =~
and !~
operators can be used to check against regular expressions.
The expression a =~ b
is true if a
matches b
, while
a !~ b
is true if a
does not match b
.
Just as with comparison operators, these operators may be used as unary versions to define a set of strings.
regexp.cue
a: "foo bar" =~ "foo [a-z]{3}"
b: "maze" !~ "^[a-z]{3}$"
c: =~"^[a-z]{3}$" // any string with lowercase ASCII of length 3
d: c
d: "foo"
e: c
e: "foo bar"
$ cue eval -i regexp.cue
a: true
b: true
c: =~"^[a-z]{3}$"
d: "foo"
e: _|_ // e: invalid value "foo bar" (out of bound =~"^[a-z]{3}$")