Apúntate...


Consultas, desarrollo de programas y petición de presupuestos:

miércoles, 1 de abril de 2015

Uso de Expresiones Regulares en Gambas

Una expresión regular, a menudo llamada también regex, es una secuencia de caracteres que forma un patrón de búsqueda, principalmente utilizada para la búsqueda de patrones de cadenas de caracteres u operaciones de sustituciones. Por ejemplo, el grupo formado por las cadenas Handel, Händel y Haendel se describe con el patrón "H(a|ä|ae)ndel". La mayoría de las formalizaciones proporcionan los siguientes constructores: una expresión regular es una forma de representar a loslenguajes regulares (finitos o infinitos) y se construye utilizando caracteres delalfabeto sobre el cual se define el lenguaje.

Para usar las expresiones regulares, tenemos el componente gb.pcre, que hay que activarlo en el menu Proyecto/Propiedades/Componentes:


 también en la documentación podemos ver la sintaxis de los patrones que se pueden usar: http://gambaswiki.org/wiki/doc/pcre


Ejemplo:
Este ejemplo extrae de la frase "From pepito.perez@aqui.com Sat Jan 5 09:14:16 2008", ladirección electrónica, la hora, y el dominio del correo electrónico.


' Gambas class file

Public Sub _new()

End

Public Sub Form_Open()

Print ResultadoER("From pepito.perez@aqui.com Sat Jan 5 09:14:16 2008","(\\S+@\\S+)")
Print ResultadoER("From pepito.perez@aqui.com Sat Jan 5 09:14:16 2008","([0-9][0-9]):([0-9][0-9]):([0-9][0-9])")
Print ResultadoER("From pepito.perez@aqui.com Sat Jan 5 09:14:16 2008","@([^ ]*)")

End

Public Function ResultadoER(cadena As String, expresion As String) AsString

Dim re As RegExp

re = New RegExp(cadena, expresion)
If re.Count = 1 Then
Return re.Text
Else
If re.count <> 0 Then
Return re[0].text
Else
Return ("No devuelve resultado")
Endif
Endif

End



Ejecutando el programa nos devuelve:
pepito.perez@aqui.com
09:14:16
@aqui.com


Depurando el programa: Viendo los valores de re[], en modo depuración
usando un punto de interrupción

Para saber más:
http://www.regexr.com/



Nota:
Para usar expresiones regulares simples también tenemos la orden Scan like

Descarga del ejemplo: alojado en google drive


Fuente:
http://www.gambas-es.org/viewtopic.php?t=4307&p=24480#p24480 (Shell)

No hay comentarios:

Publicar un comentario

A falta de donativos... un poco de publicidad