[Cascavel-pm] Regexp "greediness" (era: Quando *não* usar Perl?)

Nelson Ferraz nferraz em gmail.com
Segunda Janeiro 29 08:31:07 PST 2007


Fernando Oliveira wrote:
> Sorry... i dont speak english...

Por isso estamos nos esforçando para traduzir a documentação de Perl:

http://www.perl.org.br/bin/view/Perldoc/

Com relação à expressão "greediness", concordo que não é uma palavra
fácil. Vem do inglês "greed", "cobiça".

Aplicada às expressões regulares, significa que os quantificadores são,
por padrão, "cobiçosos" -- isto é, tentam capturar o máximo possível --
a não ser que você use o ponto de interrogação, para torná-lo "não
cobiçosos":

	my $sentence = "xyzzy";

	$sentence =~ /x(.*)y/;  # greedy
	print "'$1'\n";         # retorna: 'yzz'

	$sentence =~ /x(.*?)y/; # non-greedy
	print "'$1'\n";         # retorna: ''

[]s

Nelson

-- 
Nelson Corrêa de Toledo Ferraz

Free Software Foundation Associate Member #3203
Sociedade Perl do Brasil (www.perl.org.br)
Rede Livre de Compartilhamento de Cultura Digital


Mais detalhes sobre a lista de discussão Cascavel-pm