Regexes
A regex (regular expression) is a way to search a string for a given pattern.
The syntax can look confusing at first, but it is very powerful and flexible.
Regex strings are prefixed with a lowercase rx
.
$regex = rx'pattern'
NoteBackslashes
\
are key part of regex syntax, so THT treats them as literals. They do not need to be escaped unless you want to match a literal backslash character (e.g. \\
).Examples
Many string methods take regexes as an argument.
$pattern = rx'(orange|red|yellow)' 'large red hoodie'.contains($pattern) //= true // Match one or more digits 'The number is: 123'.match(rx'\d+') //= '123' // Match one or more word characters (a-z) 'abc 123'.match(rx'\w+') //= 'abc' // Match one or more characters of // lowercase 'a' through 'f' 'ID: 123-456-edca'.match(rx'[a-f]+') //= 'edca'
Case Matching
By default, the pattern must match the case exactly.
You can append an i
after the regex string to make the pattern case-insensitive.
'Blue Green'.match(rx'(red|blue)'i) //= 'Blue' ^
Dynamic Regexes
If necessary, you can create a regex pattern from a regular string.
However, you will need to double-backslash any special characters.
$rx = Regex('abc \\d+', 'i') 'ABC 123'.match($rx) //= 'ABC 123'