encotrar numero en pagina mechanize regular expresion

Iniciado por asdexiva, 18 Junio 2015, 20:05 PM

0 Miembros y 1 Visitante están viendo este tema.

asdexiva

   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

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

explorer

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:
Código (perl) [Seleccionar]
#!/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:
Código (perl) [Seleccionar]
#!/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;

engel lex

el regex extendido, no está ampliamente soportado :s... creo que eso lo soporta python 3, pero no 2
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.