12

Estoy traduciendo una respuesta mía de Stack Overflow en la que en un momento dado digo:

/PAT1/ matches lines having this text.

Lo que quiero decir es que en un contexto de expresiones regulares, identifico /PAT1/ como aquella expresión que se cumple si una línea dada contiene el texto "PAT1".

En inglés el verbo que se usa es siempre "match", tanto como verbo (esta línea matches este patrón) como como sustantivo (esta línea tiene un match). Sin embargo, tengo serias dudas sobre cómo traducirlo al castellano.

Me han sugerido:

  • coincidir
  • emparejar
  • empatar

La primera de ellas me gusta bastante, pero sigo dudando de si hay alguna aproximación más estándar. ¿Se os ocurre alguna? Idealmente, que sea entendible en ambos lados del Atlántico.

  • Los chilenos decimos "calzar". – Rodrigo Mar 14 '17 at 12:17
  • Calzar me gusta. Match En este contexto efectivamente significa hallar o avisar de lo que siguiere un tal patrón o modelo. Así que puede haber otros verbos del tipo, pues, hallar, encontrar, marcar, identificar, o incluso paralelizar, alinear, semblar – guifa Mar 14 '17 at 14:05
  • Calzar o matchear (no para documentacion, pero para explicar...) – Rostol Mar 14 '17 at 18:42
  • El manual de PHP en castellano usa coincidir php.net/manual/es/function.preg-grep.php. Yo uso matchear, por supuesto :) – rsanchez Mar 15 '17 at 13:05
4
+250

Veo que se buscan referencias sobre el uso en documentación técnica; entiendo que de "autoridades" en el tema.
Personalmente, en 15 años que llevo programando, siempre he usado y visto usar "coincidir" / "coincidencia", pero yo no soy una autoridad (todavía :D). Sí lo son en cambio las siguientes:

  • En la (lamentablemente poca) documentación que ofrece Oracle en castellano, se utiliza coincidir para el verbo, y coincidencia para el sustantivo. El término ocurrencia se usa solamente para hablar de las apariciones individuales de los caracteres (o grupos) dentro del segmento que se está analizando:

    El metacaracter suma (+)

    El metacaracter suma coincide con una o más ocurrencias de la subexpresión que lo precede. Por ejemplo, analicemos la expresión regular

    cas+a

    Para que una cadena de caracteres coincida con dicho patrón:

    • Debe estar el carácter 'c'
    • Le debe seguir el carácter 'a'
    • Le debe seguir una o mas ocurrencias del carácter 's'
    • Le debe seguir el carácter 'a'

    Vemos nuevamente tres literales y el metacaracter Suma. Busquemos el patrón en las siguientes cadenas y veamos las coincidencias.

  • En la documentación que ofrece IBM sobre uso de expresiones regulares en sus sistemas, se usan igualmente los términos coincidir y coincidencia:

    Conjunto alfanumérico

    Formulario[A-G]

    Se puede especificar un intervalo de letras contiguas. En esta sintaxis, coincidirán "FormularioA", "FormularioB", "FormularioC", "FormularioD", "FormularioE", "FormularioF" y "FormularioG", pero no lo harán "FormularioH" o "FormularioM". El intervalo alfanumérico distingue entre mayúsculas y minúsculas. "Formularioa" no dará ninguna coincidencia. Utilice esta sintaxis para que coincidan letras mayúsculas y minúsculas en este intervalo: "Formulario[a-gA-G]". Para que coincida con cualquier letra del alfabeto estándar, utilice todos los intervalos en mayúsculas y minúsculas: "Formulario[a-zA-Z]".

  • La documentación de Mozilla Developer Network (MDN) utiliza los mismos términos:

    Utilizando patrones simples

    Los patrones simples se construyen con caracteres para los que se desea una coincidencia exacta. Por ejemplo, el patrón /abc/ coincidirá sólo con esta exacta secuencia y orden de caracteres ('abc'). Tal expresión tendría resultados en las cadenas "Hi, do you know your abc's?" y "The latest airplane designs evolved from slabcraft." En ambos existe una coincidencia exacta con la subcadena 'abc'. No hay coincidencia en la cadena 'Grab crab' debido a que, a pesar de que contiene los caracteres 'a', 'b' y 'c', la sequencia 'abc' nunca aparece.

  • Idem para la documentación de Microsoft (MSDN) sobre el tema:

    (?( name ) Si |no)
    Coincide con si nombre, un grupo de captura con nombre o numerado, tiene una coincidencia; de lo contrario, coincide con la parte opcional no.

Creo que, en general, esos son los términos más utilizados en español, ya sea en documentación oficial o en tutoriales de andar por casa.

11

Coincidir me parece perfectamente entendible, y más todavía dado el contexto. Y coincidencia para el sustantivo, aunque también he visto ocurrencia. El uso común en español parece ser ése al menos (no incluyo ejemplos porque hay tutoriales sobre uso de expresiones regulares en diferentes lenguajes de programación a patadas por toda internet).

Entre compañeros informáticos suelo escuchar el verbo matchear y (hablando de grandes tareas de filtrado) hacer un matcheo, pero no creo que sea conveniente ni necesaria esa informalidad en SE.

Jamás he visto emparejar ni mucho menos empatar en este contexto y no me imagino que puedan sonar bien.

  • "Ocurrencia" es, además, un falso amigo, ya que no significa en español lo mismo que el inglés occurrence. – JMVanPelt Mar 14 '17 at 15:20
  • @JMVanPelt En realidad significa casi lo mismo. Pero tanto en inglés como en castellano a los significados habituales se les suma uno más técnico que no aparece específicamente en los diccionarios. – pablodf76 Mar 14 '17 at 15:23
  • 1
    ¿Podrías poner cómo traducirías la frase de la pregunta haciendo uso del verbo coincidir? – Jose Antonio Dura Olmos Jun 15 '17 at 17:40
6

¿Qué tal encajar? Según el diccionario significa "meter algo dentro de otra cosa", "ajustar algo con otra cosa", "corresponder con su totalidad", o "coincidir". Podrías decir, usando su acepción como verbo transitivo:

La expresión regular /PAT1/ encaja las líneas que contienen este texto.

Es decir, la expresión regular mete dentro de otra cosa (un listado de coincidencias, por ejemplo) las líneas que contienen ese texto. A fin de cuentas, la etimología es en + caja, siendo la caja en este caso la expresión regular.

Otra opción podría ser cuadrar:

  1. intr. Dicho de una cosa: Conformarse o ajustarse con otra.

En el caso de tu ejemplo:

La expresión regular /PAT1/ cuadra con las líneas que contienen este texto.

Hasta aquí las alternativas, pero la verdad es que coincido con @pablodf76 en que el verbo más usado en la documentación es coincidir, como se ve en sus acepciones 1 y 3:

1. intr. Dicho de una cosa: Convenir con otra, ser conforme con ella.
3. intr. Dicho de una cosa: Ajustarse con otra, confundirse con ella, ya por superposición, ya por otro medio cualquiera.

Ejemplos de este uso lo podemos ver, por ejemplo, en la documentación sobre C# en la web de la MSDN. En el artículo sobre Regex.Match() traducido manualmente en la versión de Visual Studio 2010, podemos leer (negritas mías tanto aquí como en los textos siguientes):

This method returns the first substring in input that matches the regular expression pattern. You can retrieve subsequent matches by repeatedly calling the returned Match object's Match.NextMatch method. You can also retrieve all matches in a single method call by calling the Regex.Matches(String) method.

Que se tradujo por:

Este método devuelve la primera subcadena de input que coincide con el modelo de expresión regular. Para recuperar las coincidencias subsiguientes, llame repetidas veces al método Match.NextMatch del objeto Match devuelto. También puede recuperar todas las coincidencias con una única llamada al método Regex.Matches(String).

Digo "manualmente" porque algunos artículos (sobre todo los de las versiones más recientes) se traducen de forma automática.

Se usa también en la Mozilla Developer Network para describir el uso de las expresiones regulares:

Los patrones simples se construyen con caracteres para los que se desea una coincidencia exacta. Por ejemplo, el patrón /abc/ coincidirá sólo con esta exacta secuencia y orden de caracteres ('abc'). Tal expresión tendría resultados en las cadenas "Hi, do you know your abc's?" y "The latest airplane designs evolved from slabcraft." En ambos existe una coincidencia exacta con la subcadena 'abc'. No hay coincidencia en la cadena 'Grab crab' debido a que, a pesar de que contiene los caracteres 'a', 'b' y 'c', la sequencia 'abc' nunca aparece.

La gente la usa también en Stack Overflow para preguntar:

Expresión regular que coincida también con mayúsculas

Y Google también la usa:

  • Coincidencia solo con la frase exacta
  • Coincidencia con la palabra o con la frase de una lista
  • Coincidencia de una palabra con distintas grafías o con caracteres especiales
  • Coincidencia con cualquier dirección de correo electrónico de un determinado dominio
  • Coincidencia con cualquier dirección IP de un intervalo de direcciones
  • Coincidencia con un formato alfanumérico

Otra alternativa que veo a veces es corresponderse:

3. intr. Dicho de una cosa: Tener proporción con otra. U. t. c. prnl.
4. intr. Dicho de un elemento de un conjunto, colección, serie o sistema: Tener relación, realmente existente o convencionalmente establecida, con un elemento de otro.

Como se ve en la Wikipedia, por ejemplo:

Una barra vertical separa las alternativas. Por ejemplo, "marrón|castaño" se corresponde con marrón o castaño.

Y en algunos otros sitios como comentarios en entradas de blogs:

// y vemos si hay correspondencia con el patrón
boolean emailValido= m.matches();

Resumiendo: parece que coincidir y coincidencia son la opción más usada, seguida de corresponderse y correspondencia.

  • Lo de encajar me parece buena idea. Me suena algo mejor decir La expresión regular /PAT1/ encaja CON las líneas que contienen este texto. Es decir, la analogía con "meter dentro de otra cosa" me cuesta de ver y la veo más en su aspecto de paralelismo entre el patrón y el texto. – fedorqui Mar 15 '17 at 10:41
  • @fedorqui pues sí, lo malo es que me entraba la duda de decir si las líneas encajan con la expresión regular, o si es la expresión regular la que encaja con las líneas. – Charlie Mar 15 '17 at 11:48
  • Carlos: de tanto decirlo en inglés ya no se me ocurre otra cosa que decir matches jaja. Dado que la expresión regular es un subconjunto, o como mucho el conjunto, de la línea en cuestión, creo que lo apropiado sería decir que la expresion regular encaja... EN la línea. Nótese que ahora parecería más correcto utilizar la preposición en que con. – fedorqui Mar 15 '17 at 12:04
  • @fedorqui he ampliado mi respuesta con múltiples referencias para así ser digno de tu recompensa y optar a la misma. :-) – Charlie Jun 14 '17 at 9:19
  • Uau, menudo bump le diste a la respuesta. Siempre das motivos para darte recompensas. Veamos qué más se aporta por aquí y al final de los siete días decido. De momento, me gusta ver que existe coincidencia en utilizar... coincidencia. Es bueno porque también permite usar coincidir/coincidencia para emular el uso de match (verbo/sustantivo). – fedorqui Jun 14 '17 at 9:28
6

Concordar/concordancia:

La expresión regular seri[oa] concuerda con las palabras "serio" y "seria".
No se encontró ninguna concordancia con la expresión regular en el texto.

Aunque no se refiere específicamente a expresiones regulares, usada en Sobre las opciones de concordancia con palabras clave.

En el caso concreto de la pregunta:

La expresión regular /PAT1/ concuerda con las líneas que contienen este texto.

Más ejemplos:

Google elimina la Concordancia exacta y de Frase en Adwords

La Poderosa Concordancia Amplia Modificada:

La concordancia amplia modificada o "broad modified match" permite tener palabras clave con mayor alcance que la concordancia de frase y con mayor control que la concordancia amplia.
  • 2
    Interesante aportación, Martín-Blas. Dada la definición de concordar en la RAE, se me ocurre que tal vez sería más apropiado decir No se encontró ninguna concordancia CON la expresión regular en el texto. – fedorqui Mar 15 '17 at 9:08
  • 1
    @fedorqui, editado de acuerdo con la sugerencia. Lo gracioso es que no tengo ni idea de por qué puse "de" habiendo usado "con" en los otros dos ejemplos. – Martín-Blas Pérez Pinilla Mar 15 '17 at 9:12
3

En este contexto lo que hace /PAT1/ es filtrar las líneas quedándose solo con aquellas que contienen el texto PAT1

No se me ocurre ningún verbo que signifique "filtrar y quedarse solo con". Por lo que yo lo traduciría de la siguiente forma aunque quede algo más largo :

/PAT1/ filtra las líneas quedándose con aquellas que contienen el parámetro PAT1.

En este caso considero más importante la claridad de la traducción aún a costa de alargar algo el texto.

  • 1
    El efecto real es el de "filtrar" las lineas que cumplen con la RegExp. Me quedo con esta respuesta. – DGaleano Mar 15 '17 at 14:37
  • Nótese que abrí una recompensa para ver si se pueden aportar referencias oficiales. ¡Gracias por tu tiempo! – fedorqui Jun 15 '17 at 8:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.