patterns = [ 25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40 ]
respuesta=br.response().read()
for pattern in patterns:
if re.search(pattern, respuesta):
print li + ":" + lin +'no'
else:
print (li + ":" + lin + 'si')
r = br.open(url3)
alguien me puede dar una idea para que una expresion regular revise en la pagina si ay un numero por ejemplo del 25 al 50 y si ay que imprima no de lo contrario si es mayor a esos numeros imprima si
si alguien me pudiera ayudar gracias me estoy rompiendo la cabeza de como hacerlo no me doy una idea
estás usando las regexp mal...
las regex son para busquedas de cadenas de caracteres no de condiciones numericas... en tal caso puedes hacer un regexp que busque numeros y uses if para comparar si el numero conseguido está en tu rango deseado
Sí que se pueden usar exp. reg. para buscar lo que quieres. Te pongo un ejemplo escrito en Perl, ya que en Python no sé cómo se pueden usar las exp. reg. extendidas:
#!/usr/bin/perl
$html = <<'HTML';
<html>
<head>
</head>
<body>
<p>Un párrafo con número: 42</p>
</body>
</html>
HTML
$html =~ /(\d+)(?(?{ $^N >= 25 and $^N <= 50 })(?{print "sí\n"})|(?{print "no\n"}))/;
Como ves, el truco consiste en capturar una cifra, y compararla con los límites que queremos, y el resultado imprimirlo inmediatamente.
Escrito de forma más clara:
#!/usr/bin/perl
$html = <<'HTML';
<html>
<head>
</head>
<body>
<p>Un párrafo con número: 42</p>
</body>
</html>
HTML
$html =~
/
(\d+) # capturar números
(?(?{
$^N >= 25 and $^N <= 50 # ¿está dentro de los límites?
})
(?{
print "sí\n" # sí
})
|
(?{
print "no\n" # no
})
)
/x;
el regex extendido, no está ampliamente soportado :s... creo que eso lo soporta python 3, pero no 2