🔍 Regex Engine
Sistema de regex nativo com sintaxe única - nenhuma outra linguagem tem
Sintaxe
let pattern = r"/(\w+)@(\w+)\.(\w+)/"
let email = "user@example.com"
Operadores de Regex
| Operador | Descrição | Exemplo |
|---|---|---|
~/r |
Match (testa se regex bate) | email ~/r "^\w+@\w+\.\w+$" |
~ |
Contains (contém padrão) | email ~ "@" |
=~ |
Match com extração | match email =~ r"/(\w+)@/" |
Funções Built-in
| Função | Descrição | Exemplo |
|---|---|---|
r(pattern) |
Cria regex | let re = r"/\d+/g" |
regex_match(str, pattern) |
Match completo | regex_match("test@x.com", r"/@/") |
regex_test(str, pattern) |
Testa regex | regex_test(" test", r"/te/") |
regex_replace(str, p, repl) |
Substitui | regex_replace("a1", r"/\d/", "2") |
regex_split(str, pattern) |
Separa por regex | regex_split("a,b", r/,/)) |
regex_find_all(str, pattern) |
Encontra todas ocorrências | regex_find_all("aa", r"/a/g") |
regex_extract(str, pattern) |
Extrai grupos | regex_extract("a@b", r"/(.)@(.)/") |
regex_escape(str) |
Escapa caracteres | regex_escape("a.b") |
Exemplos
// Match com destructuring
let email = "user@example.com"
match email
r"/(\w+)@(\w+)\.(\w+)/" as (user, domain, tld)
-> print("User: {user}") // "User: user"
_ -> print("No match")
// Validação de email
let is_valid = email ~/r "^\w+@\w+\.\w+$"
// Replace com callback
let result = regex_replace("hello", r"/(.)/", fn(m) -> m++"x")
// Encontrar todos
let matches = regex_find_all("a1b2c3", r"/\d/") // [{"1", "2", "3"}]
Flags
| Flag | Descrição |
|---|---|
g | Global (todas ocorrências) |
i | Case insensitive |
m | Multiline |
s | Dotall (.匹配\n) |
u | Unicode |
y | Sticky |