[NPL][Ejercicio 1]: Expresiones Regulares

  Escribe expresiones regulares para los siguientes lenguajes:

  1. el conjunto de todas las cadenas alfabéticas;
  2. el conjunto de todas las cadenas alfabéticas en minúscula que terminan en una b;
  3. el conjunto de todas las cadenas del alfabeto a,b tal que cada a está inmediatamente precedida y seguida por una b.

Solución:

  1. [A-Za-z]+
  2. [a-z]*b
  3. *b(ab)*

 Escribir expresiones regulares para los siguientes lenguajes:

  1. el conjunto de todas las cadenas que tienen dos palabras consecutivas repetidas (por ejemplo, “Humbert Humbert” y “the the”, pero no “the bug” o “the big bug”);
  2. todas las cadenas que comienzan al principio de la línea con un número entero y que terminan al final de la línea con una palabra;
  3. todas las cadenas que tienen tanto la palabra “grotto” como la palabra “raven” en ellas (pero no, por ejemplo, palabras como “grottos” que simplemente contienen la palabra “grotto”);
  4. escribir un patrón que coloque la primera palabra de una oración en inglés en un registro. Tratar con la puntuación.

Solución:

  1. (\b\w+\b)\s+\1
    1. Explicación:
      1. (: Inicio del grupo de captura.
      2. \b: Coincide con el límite de una palabra.
      3. \w+: Coincide con uno o más caracteres alfanuméricos.
      4. \b: Coincide con el límite de una palabra.
      5. ): Fin del grupo de captura.
      6. \s+: Coincide con uno o más espacios en blanco.
      7. \1: Coincide con el mismo texto que se encuentra en el primer grupo de captura.
  2. ^\d+\s.*\b(\w+)$
    1. Explicación:
      1. ^: Coincide con el inicio de la línea.
      2. \d+: Coincide con uno o más dígitos.
      3. \s: Coincide con un espacio en blanco.
      4. .*: Coincide con cualquier carácter cero o más veces.
      5. \b: Coincide con el límite de una palabra.
      6. (\w+): Coincide con una o más letras, números o guiones bajos. Este es el grupo de captura que se utilizará para extraer la palabra al final de la cadena de texto.
      7. $: Coincide con el final de la línea.
  3. \b(?=\wgrotto)(?=\wraven)\w+
    1. Explicación:
      1. \b: Coincide con el límite de una palabra.
      2. (?=\wgrotto): Es una búsqueda positiva hacia adelante que coincide con cualquier palabra que comience con “grotto”.
      3. (?=\wraven): Es otra búsqueda positiva hacia adelante que coincide con cualquier palabra que comience con “raven”.
      4. \w+: Coincide con una o más letras, números o guiones bajos. Este es el grupo de captura que se  utilizará para extraer la palabra que contiene tanto “grotto” como “raven”.
  4. ([A-Za-z]+)[A-Za-z]*
    1. Explicación:
      1. (: Inicio del grupo de captura.
      2. [A-Za-z]+: Coincide con una o más letras mayúsculas o minúsculas.
      3. ): Fin del grupo de captura.
      4. [A-Za-z]*: Coincide con cero o más letras mayúsculas o minúsculas. Este es el grupo de captura que se utilizará para capturar los caracteres adicionales después de la primera palabra.
      5. $: Coincide con el final de la línea.

Comentarios

Entradas populares de este blog

[MACHINE LEARNING] Un breve ejemplo de uso de JupyterLab

[RUST][BOTS][TELEGRAM] Como crear y explotar un bot de Telefram en un canal de Telegram

[Idiomas][Italiano] Rutina Semanal de Estudio de Italiano (3 horas/semana)