IIC2233 / syllabus-2020-2

Repositorio oficial del curso IIC2233 Programación Avanzada 🎉🎊
https://iic2233.github.io
7 stars 57 forks source link

No me funciona la implementación de ^ y $ #1282

Closed pedroriosg closed 3 years ago

pedroriosg commented 3 years ago

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Hola! Por algún motivo mi programa no reconoce cuando uso los caractéres ^ y $. (consulta 1). Si me pueden ayudar estaría muy agradecido.

Muchas gracias

nicovsj commented 3 years ago

Hola @pedroriosg,

Puedes elaborar más sobre cómo no te funcionan esos caracteres? No te entrega resultado en una consulta que si debiese entregar resultado?

Recuerda que esos caracteres hacen match con el inicio (^) y final ($) del texto.

pedroriosg commented 3 years ago

Si!, por ejemplo, si hago una consulta con el siguiente patrón:

patron = r"== History ==", mi programa reconoce el patrón, y lo puedo imprimir.

Mi outpu de test.py se ve así.

Captura de Pantalla 2020-12-13 a la(s) 22 06 26

Sin embargo, si ocupo el siguiente patron:

patron = r"^== History ==$"

no me arroja ningún resultado.

Mis patrones van con una r al inicio ya que busqué en google y si no lo uso, no me deja usar \w

nicovsj commented 3 years ago

Me parece que estas confundiendo ^ y $ con inicio y final de línea. Esto es algo que en una librería de regex común se puede hacer (colocando un flag de evaluación), pero pyrematch por ahora no lo tiene soportado. Es decir, ^$ sólo hacen match con inicio/final del texto completo en pyrematch.

Si quieres hacer match con un salto de línea debes colocar explícitamente \n en tu consulta.

Saludos!

pedroriosg commented 3 years ago

Nico, perdón pero no entendí muy bien la explicación. Por qué estaría mal usar:

patron = r"^== History ==$"

para encontrar el patrón:

patron = r"== History ==" ??

nicovsj commented 3 years ago

Porque si utilizas la consulta ^== History ==$ estas diciendo que vas a hacer match solo si el texto es exactamente == History ==. Esto no es el caso del texto de la tarea pues hay muchas más líneas en él (dado que es una página de Wikipedia completa).

Te explico lo que ocurre con otro ejemplo: imagina que tienes el texto ve como se ve o no se ve. Si haces las consultas:

Espero que con eso quede más claro. Si no se entiende me dices.

pedroriosg commented 3 years ago

Perfecto muchísimas gracias!!