Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



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



Mostrando entradas con la etiqueta expresiones. Mostrar todas las entradas
Mostrando entradas con la etiqueta expresiones. Mostrar todas las entradas

martes, 23 de diciembre de 2014

Uso de Expresiones Regulares en Gambas

Uso de Expresiones Regulares en Gambas

¿que son expresiones regulares?
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 los lenguajes regulares (finitos o infinitos) y se construye utilizando caracteres del alfabeto 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", la direcció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) As String

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 y like

Descarga del ejemplo: alojado en google drive


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


miércoles, 26 de septiembre de 2012

Java: ¿Cómo evaluar expresiones matemáticas en el computador?

Evaluador de Expresiones Matemáticas


He encontrado este interesante artículo donde su autor Alexander Borbón A. 
explica como hacer un evaluador de expresiones matemáticas.

Además ha dejado disponible el código fuente tanto en java como en visual basic.
 
"En este artículo se muestra una forma de programar un evaluador de expresiones matemáticas en JAVA. El programa se construye paso a paso y se explican detalladamente las partes más importantes del mismo. El evaluador consta de dos partes o módulos, el primero se encarga de convertir la expresión digitada a notación postfija que es más sencilla para el computador; el segundo es el que evalúa la expresión que se obtuvo en un valor específico. Para poder comprender y reescribir este programa se necesita tener conocimientos básicos en la programación en JAVA, sin embargo, se explicará el uso de varias primitivas utilizadas y de algunos conceptos básicos de programación."
Para que veáis la calidad de la explicación y el código, se pueden evaluar este tipo de expresiones: