PDA

Ver la Versión Completa : [ SOLUCIONADO ] expresión regular para búsqueda dentro de una variable


leromaro
28/03/16, 19:34:11
Hola: quisiera realizar esta tarea, estoy buscando y no lo encuentro y/o no lo entiendo.
Hago una consulta HTTP get para buscar en la página de la componía telefónica el llamante.
Recibo extensos resultados donde está el nombre. Paso el resultado de %HTTPD a una variable.
Lo que hice fue llamar a mi celular con el fijo y buscar dentro de esa variable mi nombre, una vez ubicado veo que está dentro de esta estructura
var ADV0 = ['apellido y nombre']
Para extraerlo separo la variable %llamada usando var ADV0 = ['
y luego separa %llamada2 usando ' para que me quede el nombre


Esta es la tarea

Identificar Llamada (54)
A1: Si (if) [ %CNUM ~ %CNAME & %CNUM !~ 0 ]
A2: HTTP Get [ Servidor:Puerto:www.paginasblancas.com.ar Ruta:telefono/%CNUM Atributos: Cookies: User Agent: Cuenta atrás:10 Tipo Mime: Archivo de salida: Confiar en cualquier Certificado:Apagado ]
A3: JavaScriptlet [ Código:var llamada = global("HTTPD"); Librerías: Salida Automática:Encendido Cuenta atrás (segundos):45 ]
A4: Separar variable [ Nombre:%llamada Separador:var ADV0 = [' Eliminar base:Apagado ]
A5: Separar variable [ Nombre:%llamada2 Separador:' Eliminar base:Apagado ]
A6: Notificación [ Título:Llamada de %llamada21 Texto: Icono:null Número:0 Permanente:Apagado Prioridad:3 ]
A7: Flash [ Texto:%llamada21 Largo:Encendido ]
A8: Fin si (End if)

Mi idea era empezar a usar javascript y hacer todo junto, pero he llegado a probar con el comando split y no he podido, ahora esot probando con buscar y reemplazar y mi pregunta es que expresión regular puedo usar para, en un paso, buscar lo que está dentro de "var ADV0 = ['xxxxxxx']" y que me lo guarde en una variable que contenga xxxxxxx.


Espero que alguien pueda ayudarme, el perfil anda bien pero quisiera aprender a hacerlo de otra forma.
Gracias.

maid450
29/03/16, 09:26:15
Hola leromaro, puedes hacerlo así:
Despues de la acción HTTP GET, en el javascriptlet usas este código:

var nombre = /.*?ADV0[^']*'([^']*)'.*/.exec(global('HTTPD'));
if(nombre.length > 1) nombre = nombre[1];
else flash('No se ha encontrado el nombre en la respuesta');

Con eso te sobran las acciones de separar variable y en el resto de la tarea tendrás el nombre disponible en %nombre.
En caso de no encontrar ese texto en la respuesta mostrará No se ha encontrado el nombre en la respuesta y el valor de %nombre no servirá para nada...

leromaro
29/03/16, 16:52:20
Genial: probado y funcionando, prometo tratar de entenderlo, pero seguro que jamás iba a llegar solo a la respuesta.
Muchas gracias.