No siempre se puede usar un operador greedy
en sustitución de una clase negada. En este ejemplo se intentan detectar
las cadenas entre comillas dobles que terminan en el signo de exclamación:
> cat negynogreedy.pl
#!/usr/bin/perl
$b = $a = 'Ella dijo "Ana" y yo contesté: "Jamás!". Eso fué todo.';
$a =~ s/".*?!"/-$&-/;
print "$a\n";
$b =~ s/"[^"]*!"/-$&-/;
print "$b\n";
> negynogreedy.pl
Ella dijo -"Ana" y yo contesté: "Jamás!"-. Eso fué todo.
Ella dijo "Ana" y yo contesté: -"Jamás!"-. Eso fué todo.
Casiano Rodríguez León
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León
is licensed under a Creative Commons Reconocimiento 3.0 Unported License.
Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19