RegExp no ``Greedy''

Las expresiones no greedy hacen que el NFA se detenga en la cadena mas corta que casa con la expresión. Se denotan como sus análogas greedy añadiéndole el postfijo ?:

El siguiente ejemplo muestra las líneas de los ficheros *.html que contienen dos ``anclas'' en la misma línea. Observe como el uso de los operadores no ``Greedy'' nos permite, por ejemplo, evitar el uso de la negación de una clase:

   1 > perl -e 'print "$ARGV\n\t$_" if (/<a href=\"(.*?)\">(.*?)<\/a>.*?<a href/i)' \
   2                                                           -n *.html
   3 plindex.html
   4         <li><a href="http://osr5doc.sco.com:1996/tools/CONTENTS.html">
   5         Programming Tools Guide</a> (<a href="http://osr5doc.sco.com:19
   6         96/tools/Lex.html">Chapter 12: LEX</a>) (<a href="http://osr5do
   7         c.sco.com:1996/tools/Yacc.html">Chapter 13: yacc </a>)
   8 plpracticas.html
   9         <li><a href="http://nereida.deioc.ull.es/html/java.html#html">
  10         Varios links sobre HTML</a> (<a href="http://www.lcc.uma.es/~
  11         eat/services/html-js/manu.html" target="_blank">Tutorial</a>) 
  12         (<a href="http://nereida.deioc.ull.es/html/barebone.html" tar
  13         get="_blank">Guía de Referencia</a>)

Casiano Rodríguez León
Licencia de Creative Commons
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