Regexp - Encontrando o conteúdo até o primeiro ponto
Podemos dizer que REGEXP é uma arte, uma fina arte porque envolve muito, mas muito tempo de aprendizado e prática, além de ser bem "elegante" já que ao invés de usarmos milhares de comandos e "despedaçarmos" as strings para encontrar algo, o REGEXP nos permite fazer isto com apenas uma linha, e muitas vezes com meia duzia de caracteres.
Uma dificuldade comum é capturar todo o conteúdo entre um certo padrão e outro quando queremos apenas que esta captura seja somente até a primeira ocorrência, e não todas até a ultima.
Um exemplo utilizando uma palavra inicial até o primeiro ponto:
/palavra.*\./
Este padrão irá encontrar
"Nesta frase existe uma palavra que deverá ser encontrada. Mas ela não foi."
Ou seja, irá pesquisar até o ultimo ponto possível.
Mas não queremos isto. Queremos que ele encontre até o primeiro ponto apenas. Para isto colocamos uma negação [^.] no REGEXP
A expressão fica:
/palavra.[^.]*\./
Este padrão irá encontrar
"Nesta frase existe uma palavra que deverá ser encontrada. Mas ela não foi."
O que a expressão está dizendo é:
Encontre, a partir de "palavra" tudo, menos ponto (".") até ponto (".")
Até mais!
Uma dificuldade comum é capturar todo o conteúdo entre um certo padrão e outro quando queremos apenas que esta captura seja somente até a primeira ocorrência, e não todas até a ultima.
Um exemplo utilizando uma palavra inicial até o primeiro ponto:
/palavra.*\./
Este padrão irá encontrar
"Nesta frase existe uma palavra que deverá ser encontrada. Mas ela não foi."
Ou seja, irá pesquisar até o ultimo ponto possível.
Mas não queremos isto. Queremos que ele encontre até o primeiro ponto apenas. Para isto colocamos uma negação [^.] no REGEXP
A expressão fica:
/palavra.[^.]*\./
Este padrão irá encontrar
"Nesta frase existe uma palavra que deverá ser encontrada. Mas ela não foi."
O que a expressão está dizendo é:
Encontre, a partir de "palavra" tudo, menos ponto (".") até ponto (".")
Até mais!
Comentários
Postar um comentário