FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Expresiones Regulares (¿o Regular Expressions?)
La verdad, no sabía dónde poner esto así que lo he metido en "Varios".
El tema es que últimamente estoy escuchando y leyendo muchas veces lo de las "expresiones regulares" y las "regular expressions" (que digo yo que son lo mismo, ¿no?). Creo que sé lo que es: un lenguaje que permite definir patrones o plantillas para búsquedas o introducción de texto. Algo así como la BNF, ¿o no? Pues eso, ¿dónde puedo aprender qué es y cómo utilizar expresiones regulares, tanto con las funciones/objetos que pueda tener Delphi como con otras librerías/lenguajes (especialmente Pascal, C y PHP), utilidades com grep y tal? ¿Qué ventajas tiene? ¿Existen alternativas? |
#2
|
||||
|
||||
¿Ninguna ayudita? No me digan que no saben nada de esto, que no me lo creo, ¿eh?
|
#3
|
||||
|
||||
Hola, pues yo tampoco tengo ni idea de lo que son y por lo que leo en el ClubDelphi, todo el mundo habla maravillas de ello.
Y como no la Wikipedia tiene la solucion: Expresión regular Tambien buscando un poco por los foros he encontrado un par de hilos que quiza puedan ser interesantes: Regexp... ?? Guia de herramientas para programadores! Así que nos toca empezar a leer. Espero sirva para empezar Saludos |
#4
|
||||
|
||||
Gracias Bisho.
¡Cuándo aprenderé que hay que usar los buscadores antes de hacer preguntas tontas! Última edición por Ñuño Martínez fecha: 11-10-2006 a las 11:33:08. |
#5
|
||||
|
||||
Cita:
Es coña, eh? En cuanto a lo de las preguntas tontas, no dicen algo así como no hay mayor ignorante que el que no pregunta? Tu ya has preguntado y ya sabes algo más no? Además la pregunta no ha sido tonta, a mí me ha servido para (además de ponerme a buscar ) para aprender algo nuevo. Saludos |
#6
|
||||
|
||||
Ya teneís links "más profesionales", aquí solo expongo una idea general para saber si es lo que necesitaís o no.
-El propio delphi tiene rutinas para crear expresiones regulares. - Lex es una analizador léxico (que tiene una versión en delphi) - Yacc es un analizador sintáctico (que tambien existe en version delphi) ¿Y qué demonios son analizadores lexico/sintactico? analizador lexico: Código:
[a..z]+ : mostrar('el usuario ha escrito al menos una letra desde la a a la z'); [0..9]+ : mostrar('el usuario ha escrito al menos un número'); [a..z]+[0..9]+ : mostrar(' el usuario ha escrito al menos una letra y despues un número'); [a..z]+ es lo que se llama una expresión regular, que se validará solo cuando el usuario pulse una o más letras pertenecientes al rango a..z Analizador sintáctico: Es el encargado de verificar el orden en el que se han escrito las palabras. Si el usuario escribe : "Señor Estimado:" no debe saltar el asistente de office, porque no se ha escrito en el orden correcto. Este analizador sólo se encarga del Orden, por ejemplo: Código:
Sacar_Asistente_ si: "Estimado señor:" o bien "Estimados señores:" o bien "Estimado Cliente:" o bien "Estimado amigo:" Por cierto, ¿como creeís que se obtienen las partes de un SQL? SELECT nombrecampos FROM nombretablas WHERE condiciones HAVING ... ORDER BY A través de un Parser se buscan los tokens (palabras reservadas SELECT, FROM, WHERE,ect) y se validan sin son correctas sintácticamente o no. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 11-10-2006 a las 15:34:58. |
#7
|
||||
|
||||
Para entender de qué van las expresiones regulares quizá te sirva este mensaje y si no, por lo menos el tutorial que enlazo al final del mismo. Se trata de las expresiones regulares tipo P_E_R_L (o sea, las que se usan en P_E_R_L) que son muy populares. El tutorial en cuestión, es para el uso de las expresiones en PHP aunque es buena introducción general.
En cuanto a: Cita:
Y en cuanto a esto: Cita:
// Saludos |
#8
|
||||
|
||||
Muchas gracias Lepe y Roman por sus lecciones magistrales y sus links de gran interés.
La verdad es que ahora queda mucho más claro todo. Saludos |
#9
|
||||
|
||||
roman: supongo que conoces la unidad ConvUtils.pas, donde se puede crear conversiones entre unidades de medida, pesos, etc. Pues juraría que he visto la misma filosofía con expresiones regulares en Delphi 6 hace un par de años, lo encontré de pasada y no entendí la filosofía de uso, así que lo descarté.
Usando el Grep Search de GExpert he obtenido algunas cosas: En BDS 2006 en la unidad Nsapi.pas, solo he podido encontrar esto:
En la unidad ToolsApi.pas he encontrado esto, aunque el prefijo "IOTA" me deja KO.
En dotNet\rtl\Borland.Vcl.Masks.pas tambien he encontrado cosas, pero en Delphi 6 no estará, que precisamente es donde recuerdo haberlo visto. ¿Podrías realizar algunas búsquedas en Delphi 6 para comprobar si existen lo que he encontrado? Gracias. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#10
|
||||
|
||||
Cita:
OTA => Open Tools API. Estas cosas son útiles cuando te pones a jugar con la parte trasera del IDE de delphi.. La interfaz en cuestión es la que usas cuando queres hacer una búsqueda, que por cierto, tiene una opción (limitada) para buscar usando expresiones regulares, lo que no quiere decir que podas usarlas desde el lenguaje... es decir, en tus propios programas. Como ya ha dicho roman, para esto hay componentes y bibliotecas de terceros. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#11
|
||||
|
||||
Menos mal, me parecía que Borland me insultaba IdiOTA
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#12
|
||||
|
||||
Gracias a todos. Ya sepo varias cosas más.
|
#13
|
|||
|
|||
Cita:
Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Expresiones en QuickReport (Delphi 7) | Carlos A Ortega | Impresión | 5 | 12-06-2007 11:55:09 |
expresiones regulares en sql | jonmendi | SQL | 1 | 24-12-2004 15:28:39 |
Expresiones en QReport | StartKill | Impresión | 4 | 31-05-2004 23:20:29 |
Expresiones matemáticas | Pandre | Varios | 0 | 04-09-2003 01:43:49 |
Expresiones regulares | roman | Varios | 1 | 18-08-2003 17:08:37 |
|