2 Elementos básicos

Dentro de las expresiones regulares existen varios caracteres especiales que permiten por ejemplo indicar que lo que se busca es un carácter alfanumérico o una secuencia de números, entre otras posibilidades.

2.1 .

El punto . es uno de los caracteres fundamentales de las expresiones regulares. Es representa la presencia de un carácter de cualquier tipo. No tiene que ser ni siquiera alfanumérico. De esta forma, al buscar book. se localizan tanto las URLs que incluyen bookscomo book/.

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

2.2 \

No obstante, en caso de querer buscar literalmente el punto se necesita “escapar.” Mediante el uso de la barra invertida \ podemos establecer la búsqueda literal de un carácter que tiene alguna funcionalidad especial dentro de las expresiones regulares como el punto o los paréntesis. En el caso de querer buscar literalmente book. habría que usar book\..

URL
facebook.com/groups/111795415601449
goldbook.iupac.org/s05962.html
nfl.com/liveupdate/gamecenter/28849/nyg_gamebook.pdf
nytimes.com/2011/02/03/books/03book.html
greybook.cern.ch/greybook/experiment/detail?id=wa81

No confundir este uso de la barra invertida como método de escape con su uso para establecer clases de caracteres como las que se explican a continuación.

2.3 \d y \D

Mediante \d se establece la búsqueda de un dígito. De esta forma no necesitas indicar un número exacto, solo que un número ha de estar presente. Por ejemplo, sabiendo que en la URL de la web del New York Times aparece el año de publicación, podemos buscar noticias publicadas entre 2010 y 2019 buscando nytimes.com/201\d.

URL
nytimes.com/2019/05/07/opinion/data-privacy.html
nytimes.com/2011/02/03/books/03book.html

Con \D el funcionamiento es justo el puesto, busca la no presencia de un digito. Esto no significa que busque solo letras. Usando el ejemplo anterior, podemos detectar si hay algún fallo en estar URLs buscando que detrás de la URL base de la página exista algo que no sea un digito con nytimes.com/\D.

URL
nytimes.com/ 2006/02/24/sports/olympics/24skate.html
nytimes.com/slideshow/2010/09/15/garden/0916emerson-slideshow.html

2.4 \w y \W

Es posible buscar caracteres alfanuméricos de igual manera que antes usando \w. Por ejemplo, ahora quiero obtener todas las URLs del New York Times que no vayan a la página principal usando www.nytimes.com/\w.

URL
nytimes.com/2019/05/07/opinion/data-privacy.html
nytimes.com/2011/02/03/books/03book.html
nytimes.com/slideshow/2010/09/15/garden/0916emerson-slideshow.html

Nuevamente, si lo ponemos en mayúscula con \W su uso es el opuesto y busca la presencia de algo que no se de tipo alfanumérico. En este caso quiero probar a buscar en las URLs la presencia del texto viaf seguido de algo que no sea un dígito o letra con viaf\W.

URL
viaf.org/viaf/72689661
worldcat.org/identities/viaf-260281158
viaf.org/viaf/8648888
viaf.org/viaf/24934751
viaf.org/viaf/21209763
viaf.org/viaf/128732352

2.5 []

De manera más precisa se pueden especificar que rango de caracteres estamos buscando haciendo uso de los corchetes []. Este representa un único elemento y en su interior se representan los diferentes valores que puede tomar. Retomando el primer ejemplo del New York Times, es posible determinar ese rango de año de manera mucho más precisa, reduciéndolo a 2011 y 2012 con nytimes.com/201[12]. En este caso no busca 12 sino que busca la presencia del 1 o del 2.

URL
nytimes.com/2011/02/03/books/03book.html

Es posible todo tipo de combinaciones, incluyendo no solo caracteres alfanuméricos sino también de otro tipo. En el caso de la anterior búsqueda de viaf le podemos indicar que detrás de viaf aparezca - o / usando viaf[/-].

URL
viaf.org/viaf/72689661
worldcat.org/identities/viaf-260281158
viaf.org/viaf/8648888
viaf.org/viaf/24934751
viaf.org/viaf/21209763
viaf.org/viaf/128732352

Si quisiéramos establecer con los rango la presencia de un valor numérico cualquiera no tenemos que escribir todos ellos, se puede emplear [0-9], al igual que ocurre con los caracteres alfabéticos [a-z]. Aunque en este último caso la búsqueda quedaría limitada a todos aquellos que aparezcan en minúscula, para buscar en mayúscula se usaría [A-Z] y si queremos tener en cuenta ambos [a-zA-Z]. De esta forma, si quisiéramos localizar las URLs que incluyen una mayúscula se puede emplear [A-Z].

URL
BOOKS.GOOGLE.COM

De manera opuesta, se pueden establecer las diferentes opciones a evitar con [^]. Por ejemplo, los artículos de New York Times que no son de 2010 ni de 2011 usando nytimes.com/201[^01].

URL
nytimes.com/2019/05/07/opinion/data-privacy.html

2.6 |

Es posible combinar dos o más expresiones regulares de manera lógica y como el operador booleano OR usando la barra vertical |. Por ejemplo, para localizar URLs que contengan .gov o .org se puede usar la expresión (\.gov)|(\.org).

URL
tyndalesploughboy.org/category/reformers
wikidata.org/wiki/q6762899#p570
trs-new.jpl.nasa.gov/dspace/bitstream/2014/39501/1/05-0657.pdf
geonames.usgs.gov/apex/f?p=gnispq:5:::no::p5_antar_id:5544
wikisky.org/?img_source=img_all&object=3c+236&zoom=14
pdxqcenter.org/hands-across-hawthorne