Hola a todos, hace un rato me ha dado el puntazo de hacerme un parser para una pagina web y he decidido hacerlo en Python, he leido la doc de las regexp con algunos ejemplos, pero no funciona como deberia, al menos eso me parece a mi:
#!/usr/bin/python
import re
while True:
palabra = raw_input("Introduce tu expresion para ver si coincide:\n");
if re.match("http://(.+)\net", palabra):
print "Cierto"
else:
print "Falso"
Si en teoria introduzco http://www.google.net
Deberia devolverme cierto no?
Pero no es asi.
No tengo claro del todo que hace el + pero creo que concatena las dos cadenas, es como el divisor entre miembros, pero no estoy seguro.
Saludos
+ es un cuantificador y busca 1 o más elementos.
Prueba así:
if re.match("http://(.+)\.net", palabra):
if re.match("http://(.*)\.net", palabra):
PD: No sé regexp con python, así que no esperes que funcione.
Cita de: Leo Gutiérrez. en 21 Agosto 2010, 22:54 PM
+ es un cuantificador y busca 1 o más elementos.
Prueba así:
if re.match("http://(.+)\.net", palabra):
if re.match("http://(.*)\.net", palabra):
PD: No sé regexp con python, así que no esperes que funcione.
Jaja pues funciona xD
Gracias men :)
Saludos
De nada.
Bueno, aunque leo dio una respuesta, ps detallo un poco mas.
Tu error esta aqui.
http://(.+)\net
Estas indicando que existe una nueva linea y por lo tanto siempre la expresión fallara...
Nose porque usas los paréntesis, ya que no capturas nada....
#!/usr/bin/python
import re
while True:
palabra = raw_input("Introduce tu expresion para ver si coincide:\n");
if re.match("http://\w+?\.?\w+\.?[net|com|org]", palabra):
print "Cierto"
else:
print "Falso"
Acepto http://www.google.net, http://google.net, http://www.google.com, etc...
También se podría utilizar '$' si quieres limitar la cadena.
Cita de: ~ Yoya ~ en 22 Agosto 2010, 00:23 AM
Bueno, aunque leo dio una respuesta, ps detallo un poco mas.
Tu error esta aqui.
http://(.+)\net
Estas indicando que existe una nueva linea y por lo tanto siempre la expresión fallara...
Nose porque usas los paréntesis, ya que no capturas nada....
#!/usr/bin/python
import re
while True:
palabra = raw_input("Introduce tu expresion para ver si coincide:\n");
if re.match("http://\w+?\.?\w+\.?[net|com|org]", palabra):
print "Cierto"
else:
print "Falso"
Acepto http://www.google.net, http://google.net, http://www.google.com, etc...
Pues no veo donde le indicaste la coma final y todo eso xD
Por cierto para que sirve el "?"?
Saludos
No entiendo a que te refieres con la coma final...
el signo de interrogación ?, sirve para indicar que algo puede aparecer máximo una sola vez...
Supongo que se refiere a estó...
-Sería un Pwned muy coño-Cita de: ~ Yoya ~ en 22 Agosto 2010, 00:23 AMAcepto http://www.google.net, http://google.net, http://www.google.com, etc...
jajaja, las comas ya son otro tema...