Pular para o conteúdo

pregFind

Compartilhada Utilidades

Diz se uma expressão regular casa com uma string.

bool pregFind ( string texto, string padrao [, int/string flags = 0 ] )
NomeTipoPadrãoDescrição
textostring—Texto onde procurar. Um número vira texto.
padraostring—Expressão regular.
flagsint ou string0Opções de busca — veja abaixo.

O argumento flags é um número — a soma dos bits abaixo — ou uma string com as letras:

LetraBitEfeito
i1Não diferencia maiúsculas de minúsculas.
m2Multilinha: ^ e $ também casam nas quebras de linha.
d4Dot-all: . também casa com uma quebra de linha.
e8Estendido: espaços e comentários # dentro do padrão são ignorados.
u16UTF-8: padrão e texto são lidos como UTF-8, e \w, \d e afins seguem o Unicode.

Uma string com qualquer outra letra registra Bad usage @ '<função>' [Flags all wrong] e a chamada devolve false; um número negativo também. Qualquer outro tipo — nil, um booleano — significa sem flags.

true se o padrão casa em algum ponto de texto, false caso contrário. Um padrão que não compila também dá false, sem aviso. Um argumento inválido registra um aviso e devolve false.

Os padrões usam a sintaxe do PCRE2. Cada busca tem um teto fixo de trabalho de backtracking, então um padrão patológico para de casar em vez de travar o script.

addEventHandler("onPlayerChangeNick", root, function(apelidoAntigo, apelidoNovo)
if not pregFind(apelidoNovo, "^[a-z0-9_]{3,16}$", "i") then
cancelEvent()
outputChatBox("Apelidos: de 3 a 16 letras, dígitos ou _", source)
end
end)
  • getUserdataType — Diz que tipo de handle um userdata é.
  • pregMatch — Junta todas as ocorrências de uma expressão regular.
  • pregReplace — Substitui todas as ocorrências de uma expressão regular.