IIC2233 / syllabus-2020-2

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

Problema llamando a titulos con == #1294

Closed MaxBrinck closed 3 years ago

MaxBrinck commented 3 years ago

Prerrequisitos

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

Duda

Hola, estoy tratando de buscar repeticiones que esten entre el string ==, la cosa es que me toma tambien los que estan entre === y ==== , por lo que decidi ponerle al patron al lado del == un \W que chequee que siga de un caracter alfanumerico, la cosa es que me tira error . Podrian ayudarme ? No quiero subir el codigo porque podria ser tomado como copia, pero trate de explicarme lo mejor posible

[De ser necesario, coloca tu pregunta de manera explícita utilizando este formato]

nicovsj commented 3 years ago

@MaxBrinck ,

Que clase de error te sale? Yo si coloco (por ejemplo) !x{==\W} sí me aparecen resultados en el documento.

Otra cosa, \W es el complemento de \w, que hace match con un caracter alfanúmerico. Por lo que \W hace match con un caracter NO alfanumérico.

MaxBrinck commented 3 years ago

Pongo pattern = BORRADO (@aaossa) y no me tira error, no aparece nada en consola, pero la primera coma adentro del primer parentesis me sale en naranjito, y si pongo el mouse encima me dice "Amalous backslash in string '\w'. String constant might be missing an r prefix." No es error, eso me lo dice VS Code

aaossa commented 3 years ago

Hola @MaxBrinck , al parecer solo es un warning (una advertencia) que no impide ni afecta la ejecución de tu código. Te recomendaría hacerle caso a tu editor y agregar la "r" al principio del string: r"asi", y ver si eso permite que tu código funcione como esperas.

MaxBrinck commented 3 years ago

Ahora no aparece nada en consola :c

aaossa commented 3 years ago

¿Podrías subir tu código a tu repositorio y decirme cuál archivo debo ver? Ojalá puedas dejar comentado o en un nuevo archivo *.py lo que te produce el error para poder verlo más fácilmente. ¡Gracias 🙌!

MaxBrinck commented 3 years ago

Dale profe ! Ahi lo subi, es un codigo super corto es solo para probar que funcione. La idea es agarrar los titulos que esten rodeados por "==" por ejemplo "== Etimologia =="

aaossa commented 3 years ago

Hola @MaxBrinck , la verdad creo que el problema de que no te retorne nada es porque tu expresión regular no está bien armada. Te recomendaría usar la respuesta que te dejó Nicolás más arriba para modificar tu expresión regular y a partir de ahí construir una nueva que capture lo que esperas. Creo que estás cerca en cuanto a la idea, pero tienes que corregir lo que quieres capturar en tu expresión. En cuanto al problema del editor, yo no tuve problemas utilizando r"string" (esto no tiene nada que ver con la expresión regular 😅, son problemas no relacionados). No puedo guiarte más en cuanto al armado de tu expresión regular porque en eso consiste la actividad 😅 ¡Éxito con tu actividad!

MaxBrinck commented 3 years ago

EDITADO Por lo tanto mi problema esta en limitar a que no hayan caracteres no alfanumericos despues del "=" y ahi me estoy complicando.... No se si me puede ayudar? O quizas le pongo los 4 casos en el codigo para que lo vea usted

aaossa commented 3 years ago

@MaxBrinck por favor no compartas código exacto de tu actividad, (casi) todes les alumnes están haciendo la actividad y tienen los mismos problemas que tú, y es parte de la dificultad de la misma, por lo que no voy a responder detalladamente a tu comentario. Por ejemplo, para especificar tu duda bastaba la última frase, no es necesario colocar todo lo que has intentado, así que ten cuidado por favor.

Para identificar un caracter no alfanumérico, puedes usar lo que dijo Nicolás ("\W"). Te recomendaría usar eso de punto de partida e ir probando qué ocurre si no usas ningún delimitador, si usas solo ciertos caracteres (como "="), etc. Mi consejo para armar una buena expresión regular aquí es que simplifques tu expresión y empieces a probar agregando y quitando elementos.