next: Null Coalescing

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.


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}$")