Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Saudações iMasters,
Gostaria que me tirassem uma dúvida bem simples... qual a diferença entre ***match e exec***, em uma expressão regular? Poderiam mostrar exemplos de ambas sendo usadas?
Grato desde já e boas festas a todos.
--
Genial! Muito obrigado mesmo!
Oi @Iskandar, existem algumas diferenças:
.match é um método de string.
[ 'a', index: 1, input: 'banana' ] [ 'a', 'a', 'a' ]Okay? peguei a string banana, e perguntei pro método .match, quais eram as correspondências daquela REGEX sob a string banana.Sem o modificador g (global), o retorno foi a primeira letra a que a regex encontrou, no índice 1 da string (b:0, a:1, n:2, a:3:, n:4, a:5).Com o modificador g, o retorno foram as 3 letras da palavra banana.
Ou seja, o .match retorna as correspondências da Regex em uma string.
Pode ser usado para extrair partes da string, ou contar quantas correspondências do padrão existem, coisas desse tipo.
.exec é um método de regex.
[ 'a', index: 1, input: 'banana' ] [ 'a', index: 1, input: 'banana' ] nullO metodo .exec, apenas executa uma REGEX sob uma string, ou seja, retorna se o padrão foi encontrado ou não. Deve ser utilizado mais para buscas booleanas, para verificar se a string atende a um certo padrão definido.Veja que tanto com o /g quanto sem ele, o resultado foi o mesmo: encontrei o teu padrão, não importa onde, e nem porque, mas encontrei. E quando pesquisei por /c/ o resultado foi: não encontrei, não tem letra c no meio da string banana.
Ficou claro?