Las expresiones regulares, o regex, por su abreviatura inglesa, son expresiones que pueden ser muy útiles al traductor.
Las expresiones regulares pueden intimidar al más valiente, porque es cierto que pueden llegar a ser complicadas, pero como siempre en esta vida, se pueden aprender poco a poco. Por eso, en este artículo voy a tratar de quitarte el miedo y empezar a desvelarte el potencial de las expresiones regulares.
Dentro de una aplicación de ayuda a la traducción, como SDL Trados Studio, las expresiones regulares pueden emplearse en muchas ocasiones, a saber:
- Para filtrar segmentos dentro del Editor de Studio.
- Para realizar búsquedas y reemplazos en el Editor.
- Para crear un nuevo filtro de archivo personalizado.
- Para definir las reglas de segmentación al preparar un archivo.
- Para configurar la herramienta QA Checker.
- Para trabajar con la aplicación Regex Match AutoSuggest Provider de OpenExchange.
En este artículo, veremos casos prácticos de las expresiones regulares solo de la primera aplicación, es decir, con los filtros de Studio. Con pequeñas salvedades, los ejemplos que doy podrás aplicarlos a las demás, y seguro que podrás aprovecharlas para memoQ y otras herramientas de traducción asistida.
A pesar de lo dicho hasta ahora, las expresiones regulares existen desde hace mucho tiempo, antes incluso del nacimiento de Studio. De hecho, si has visto la película La red social o leído el libro Multimillonarios por accidente: El nacimiento de Facebook recordarás que allá por 2004, Mark Zuckerberger, el fundador de Facebook, se metió una sola noche en los ordenadores de varios campus de la Universidad de Harvard para copiar fotos de féminas estudiantes.
Para ello, Mark utilizó expresiones regulares, una forma cómoda de copiar un montón de fotos de una sola pasada. Así se jactaba con sus amigotes:
This time it's going to look at the directory and figure out what pages it needs to go to by finding links with regexes. Then it'll just go to all of the pages it found links and jack the images from them.
Del libro The Accidental Billionaires: Sex, Money, Betrayal and the Founding of Facebook.
Por si no sabes la historia, Mark se llevó un buen rapapolvo de la dirección de la Universidad de Harvard y casi le cuesta la expulsión. Pero le hubiera dado igual… porque solo unos meses después, Mark abandonó la Universidad para poder acelerar su proyecto de Facebook, que entonces estaba en pañales…
No es mi deseo animarte a que aprendas las expresiones regulares para que imites las gamberradas de Mark Zuckerberger, sino para que veas su potencial para traducir o revisar: una pequeña expresión con reglas no demasiado complicadas te puede ahorrar mucho tiempo y esfuerzo en tu trabajo. Si Mark lo hizo, ¡tú también puedes!
¿Empezamos?
Expresiones regulares en los filtros de Studio
Antes de comenzar con las expresiones regulares, permíteme una pequeña digresión sobre los filtros de Studio.
Como ya comenté en este artículo, los filtros del Editor de Studio se encuentran en la cinta Revisión, dentro del grupo Mostrar filtro:
Si quieres saber más sobre los filtros y qué significan sus cinco botones, te recomiendo que le eches un vistazo antes al artículo Traducir y revisar con los filtros de SDL Trados Studio.
Por ejemplo, si en el cuadro Buscar escribes ola y pulsas la tecla INTRO de tu teclado, te aparecerán todos los segmentos con la cadena ola en el texto de origen, incluyendo ¡Hola!, Una ola gigante, Gonduana me mola, etc.
Hasta aquí bien, ¿verdad?
Pues acabas de escribir la expresión regular más sencilla que existe, así que ya sabes que sin quererlo, es muy posible que ya hayas usado en tu beneficio las expresiones regulares.
Una expresión regular no es más que una pequeña secuencia de caracteres (letras, números y otros signos, ya los iremos viendo) a la que llamaremos patrón de búsqueda, o simplemente patrón, que se emplea para hacer búsquedas normalmente en textos más grandes.
La idea es filtrar fácilmente un texto enorme en lugar de leérselo de arriba abajo. De esa manera, podrás afinar la terminología, confirmar que en la traducción se ha seguido un determinado criterio, etc.
En las expresiones regulares, las letras tienen un significado directo, como el que hemos visto en ola, pero la utilidad y flexibilidad de las expresiones regulares radica en lo que está más oculto, así que si aprendes esta parte oculta, te podrá ser muy útil para las seis aplicaciones enumeradas al principio de este artículo.
No te asustes con lo «oculto», no son fantasmas… De hecho, si has usado los comodines para buscar texto dentro de Microsoft Word (el asterisco * o la interrogación ?), ¡ya has usado un subconjunto de expresiones regulares!
Que conste que no soy un experto en expresiones regulares, pero con lo poco que sé te aseguro que me he ahorrado muchas horas de trabajo. Tú también puedes conseguirlo también, no lo dudes.
¿Con fuerzas para seguir?
¡Pues ahí vamos!
Nomenclatura de colores
En este y subsiguientes artículos sobre las expresiones regulares, seguiremos la siguiente nomenclatura:
- los patrones irán sobre fondo verde, por ejemplo, reg;
- cada patrón buscará una cadena, por ejemplo reg, sobre fondo de color azul;
- y encontrará los segmentos que cumplan el patrón, como por ejemplo, Las expresiones regulares son muy útiles, sobre fondo de color verde.
1. Principio de la cadena, con el sombrero ^
Por ejemplo, el patrón ^e encontrará todos los segmentos que empiezan por e.
O dicho gráficamente:
Nota: el carácter de sombrero aparece en muchos campos del conocimiento, y es muy posible que tenga un nombre distinto en cada uno de ellos. Que yo sepa, además de sombrero (como lo aprendí en clase de matemáticas), se le conoce también como acento circunflejo, signo de intercalación, símbolo de exponenciación y flecha arriba; usa el que más te guste, y si sabes otra manera de nombrarlo, dímelo, que lo añado a esta lista, ¿vale?
2. Fin de la cadena, con el dólar $
Por ejemplo, el patrón e$ encontrará todos los segmentos que terminan por e.
O dicho gráficamente:
Si quieres saber los segmentos terminados por punto ., el patrón es \.$:
Ten en cuenta, y esto es muy importante en expresiones regulares, que el punto significa casi cualquier carácter. Por tanto, gráficamente el patrón .$ es:
Nota: lo de «casi cualquier carácter» es porque no se incluyen los caracteres de retorno.
Relacionado con esto: puedes encontrar los retornos manuales con este patrón \n:
Como recordatorio, los retornos manuales (o saltos de línea manuales) aparecen en Studio con esta pinta:
y se pueden introducir con la combinación de teclas MAYÚS + INTRO del teclado.
3. Los corchetes [], para agrupar caracteres en grupos o clases
El patrón gui[oó]n encontrará todos los segmentos con las cadenas guion y/o guión.
O dicho gráficamente:
Dentro de los corchetes se pueden colocar más caracteres. Por ejemplo, el patrón [0123456789] encontrará los segmentos con algún número decimal del 0 a 9.
Este patrón puede simplificarse usando el guión en este otro patrón equivalente: [0-9]
o así: \d
Como digo, las tres últimas expresiones regulares son totalmente equivalentes, pero la tendencia según aprendes las expresiones regulares es a escribir las versiones abreviadas.
Es fácil ver que [a-z] encuentra segmentos con alguna letra entre la a y la z:
o que [0-9a-z] encontrará todos los segmentos con algún carácter alfanumérico (algún número o alguna letra de la a a la z):
Similar, aunque no equivalente, el patrón \w encontrará todos los caracteres alfanuméricos, incluido el carácter de subrayado _.
Ya que estamos con patrones abreviados, \s encontrará los segmentos con algún espacio :
Ojo, que los patrones distinguen mayúsculas de minúsculas. Por eso, \S encuentra los segmentos que tengan algo distinto a un espacio en blanco:
\D encuentra los segmentos con un carácter que no sea un dígito:
Por supuesto, si el segmento tiene tanto números como letras, se mostrará dicho segmento, porque ha encontrado un carácter que no es un número.
\W encuentra los segmentos que tienen un carácter que no sea alfanumérico ni el de subrayado, es decir, encuentra los espacios, los signos de puntuación, etc.
Regla nemotécnica: ¿Te has dado cuenta en estas versiones abreviadas que el patrón en mayúsculas significa justo lo contrario que la versión en minúsculas?
Compara estos patrones para confirmarlo:
- \d y \D
- \s y \S
- \w y \W.
Conclusiones
En este artículo hemos visto la aplicación de algunas expresiones regulares en los filtros de Studio, aunque servirían igualmente para el resto de aplicaciones mencionadas al principio.
¿Aplicaciones de estas búsquedas con expresiones regulares?
Respuesta: ¡Muchas! En este vídeo de YouTube tienes algunas, como verificar manualmente la terminología y los valores numéricos.
Échale un vistazo al vídeo si llegado a este punto no sabes para qué pueden servir las expresiones regulares.
Por cierto: ¿alguna vez has querido filtrar los segmentos del Editor y no has podido y no sabías porqué?
Si es así, déjame en los comentarios lo que querías hacer, y a ver si lo puedo poner como caso práctico en el siguiente artículo, porque… ¡por supuesto que habrá una segunda parte de las expresiones regulares!
Apéndice
Las versiones gráficas de los patrones que ves en este artículo han sido posibles gracias a www.regexper.com.
Puede ser un buen recurso para que pruebes tus expresiones regulares. Además, ¡es gratis!
Ten en cuenta que hay muchas sintaxis regex, es decir patrones que funcionan en unas aplicaciones y en otras no. Studio es compatible con el regex .NET. Lo comento por si consultas en internet alguna documentación de expresiones regulares que no es compatible con Studio: lo descubrirás enseguida porque los filtros no te van a funcionar. Por ejemplo, si escribes este patrón \p{Alnum} en el filtro, se mostrará este mensaje:
El motivo es que Studio no admite esta sintaxis, aunque hay otras aplicaciones que sí la admiten.
Nada más por hoy, aún quedan muchas cosas importantes que tocar sobre las expresiones regulares, pero ya será otro día.
******************************
En este artículo he incluido algunos enlaces afiliados por los que a cambio de promocionar productos de terceros consigo una pequeña comisión por cada compra que hagas haciendo clic en el enlace, sin que te salga más caro por ello.
🙂
Si no quieres perderte la siguiente entrega sobre expresiones regulares, apúntate a mi boletín o sígueme en Twitter (@jssprt) y te avisaré en cuanto salga.