nuxScript

🔍 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
gGlobal (todas ocorrências)
iCase insensitive
mMultiline
sDotall (.匹配\n)
uUnicode
ySticky