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!


Comentários

Postagens mais visitadas deste blog

MySQL - Completando quantidades fixas de caracteres com as funções LPAD() e RPAD()

MySQL - Clonando tabelas na linha de comando

PHP - Gerando arquivo em UTF-8 com fwrite() e utf8_encode()