3 Cuantificadores

Un elemento fundamental en las expresiones regulares, en especial para las tareas de reemplazo, está en los cuantificadores. Estos permiten marcar la posibilidad de que un carácter o expresión aparezca una o más veces.

3.1 {}

Los corchetes pueden usarse para establecer el rango de veces que un carácter o expresión puede venir dado. En primer lugar se fija y el mínimo y tras ello, separado por una coma, el máximo. Si por ejemplo tenemos la palabra book queremos recuperar además el plural books es posible hacerlo indicando que la s puede no estar o estar solo una vez de esta forma book(s){0,1}.

URL
books.google.com/?id=jhkypjgchecc
books.google.com/?id=zaoaaaaayaaj
books.google.com/?id=y1cndwaaqbaj
books.google.bg/books?id=e4pjaaaamaaj
jubileebooks.co.uk/jubilee/magazine/authors/deborah_ellis/profile.asp
io9.com/the-book-of-strange-new-things-will-blow-you-away-1675147919

Los paréntesis permiten establecer de manera más precisa que se trata de la s, pues aunque por defecto books{0,1} también devuelve el mismo resultado aquí, en otros casos podría llevar a resultados erróneos.

3.2 ?

En relación con este ejemplo, una forma de indicar que un elemento puede estar presente una vez o ninguna es con ?. De esta forma, la búsqueda anterior podría realizarse de manera simplificada con book(s?) o books?.

URL
books.google.com/?id=jhkypjgchecc
books.google.com/?id=zaoaaaaayaaj
books.google.com/?id=y1cndwaaqbaj
books.google.bg/books?id=e4pjaaaamaaj
jubileebooks.co.uk/jubilee/magazine/authors/deborah_ellis/profile.asp
io9.com/the-book-of-strange-new-things-will-blow-you-away-1675147919

3.3 +

En el caso de que este carácter o expresión pueda aparecer como mínimo una vez o más se hace uso de {1,} o, de manera más simplificada, +. Gracias a ello podemos localizar y verificar cadenas de texto. Por ejemplo, podemos localizar en las URLs los números de control de la Library of Congress usando lccn-[a-z]+\d+.

URL
worldcat.org/identities/lccn-no2009195364
worldcat.org/identities/lccn-n90609217
worldcat.org/identities/lccn-n92112063
worldcat.org/identities/lccn-nr95045397
worldcat.org/identities/lccn-n2007035186
worldcat.org/identities/lccn-n85044526

3.4 *

El asterisco * funciona igual que +, pero va un paso más allá y en lugar de exigir que como mínimo aparezca una vez puede no estar presente. Es el equivalente a {0,}.

Su uso con el . son de gran utilidad en las expresiones regulares, pues permiten establecer la presencia de cualquier carácter o secuencia de caracteres. Su utilidad se encuentra sobre todo con los reemplazos. Por ejemplo, con el caso anterior, podemos eliminar toda la URL y reducirla al número de control. Para ello solo hay que buscar .*lccn- y reemplazar por lccn-.

URL
lccn-no2009195364
lccn-n90609217
lccn-n92112063
lccn-nr95045397
lccn-n2007035186
lccn-n85044526

O incluso reducirla por completo al número reemplazando por una cadena de texto vacía.

URL
no2009195364
n90609217
n92112063
nr95045397
n2007035186
n85044526