Las expresiones regulares son bastante comunes en la programación de computadoras. Pero también están disponibles para los usuarios finales. Por ejemplo, si está tratando con PowerShell o el comando Findstr, puede hacer uso de ellos. Y hay utilidades de terceros (como Agent Ransack y EditPad) que admiten expresiones regulares. Dado que son tan útiles en muchos entornos diferentes, decidí que debería darles un consejo.

Una expresión regular es una cadena, que a menudo consta de caracteres especiales, diseñada para coincidir con un patrón de búsqueda. Por ejemplo, si usamos el comando Findstr, podemos buscar la palabra «documento»

seguido inmediatamente por una coma o un punto especificando la cadena de búsqueda «documento [,.]». Los caracteres especiales en este caso son los corchetes, lo que significa que cualquiera de los caracteres adjuntos debe seguir a la palabra «documento».

Hay muchos caracteres especiales que se pueden usar en una expresión regular. Muchos de los cuales se enumeran a continuación:

Character

Description

Match 0 or more characters. Example: haven matches both heaven

and haven.

+

Match 1 or more characters. Example: he+aven matches heaven and

heeaven but not haven.

^

Match what follows only if it’s at the beginning of the string.

Example: if your regular expression is ^document, it will match document

in the string «document the requirements», but it will not match

anything in the string «this is a requirements document».

$

Match what precedes only if it’s at the end of the string.

Example: if your regular expression is document$, it will match document

in the string «this is a requirements document», but it will not match

anything in the string «document the requirements».

\d

Match a digit. Example: \d matches each digit individually in

the string «my degree is from 1987». If you want to match all four

digits at once, just repeat the \d like \d\d\d\d.

.

Match any single character. The period is like a wildcard in that

it will match anything.

(a

b)

Para ver las expresiones regulares en acción, combinemos algunas y usemos el comando Findstr para encontrar ocurrencias de cadenas en un archivo. Tengo un archivo llamado Barry.tmp que contiene el siguiente texto:

Video provides a powerful way to help you prove your point.  When you click Online Video, you can paste in the embed code for  the 20 or 30 videos you want to add. You can also type a keyword  to search online for the video that best fits your document.

Usemos Findstr para encontrar cadenas de dígitos en el archivo: (Ver Figura 1.)

image

Figura 1. Búsqueda de cadenas de dígitos.

Permítanme presentarles un par de conceptos más. Puede utilizar un par de corchetes para delimitar un rango de caracteres a buscar. Por ejemplo, especificar _ [a-z] _ coincidirá con cualquier carácter alfabético. También es digno de mención que usa el carácter de barra invertida (\) para «escapar» del carácter que sigue y tratarlo literalmente. Esto es útil si desea encontrar un carácter que de otro modo se trataría como parte de la expresión regular. Armados con estas dos piezas de información, ahora podemos buscar en nuestro archivo un carácter alfabético seguido de un punto, es decir, encontrar líneas que sean finales de oraciones: (Ver Figura 2.)

image

Figura 2. Búsqueda de finales de oraciones.

Permítanme terminar con una advertencia: en mi experiencia, el motor de expresiones regulares utilizado en la línea de comandos de Windows es un poco diferente de la mayoría de los motores de expresiones regulares. Las expresiones regulares que deberían funcionar (y que funcionan en otras utilidades) pueden no funcionar como se esperaba en la línea de comandos. Entonces, sabiendo que su millaje puede variar, experimente con ellos, pero no apueste su próximo cheque de pago a que lo que ingresó funcionará como se esperaba.

Este consejo (1364) se aplica a Windows 7, 8 y 10.