Página 1 de 1

Expresiones regulares en Delphi

NotaPublicado: 2013-06-03 17:54 @788
por BigBear
Estoy usando un componente en Delphi que me permite usar las expresiones regulares de Perl en Delphi. El problema es este: necesito sacar todos los nombres de esta línea:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Bot #locos :locos
Bot #locos :SYSTEM 1370177575
Bot = #locos :Bot Test Now
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


El código en Delphi este:
Sintáxis: [ Descargar ] [ Ocultar ]
Using delphi Syntax Highlighting
  1. PerlRegEx1.Regex := '(.*?) = '+sEdit3.Text+' :(.*?)';
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4

Como ven necesito sacar todo lo que le siga a ':', que vendría a ser los nombres. Mi código solo saca el primero, que es 'Bot'.

¿ Alguien sabe cómo mejorar la expresión regular ?

Re: Expresiones regulares en Delphi

NotaPublicado: 2013-06-03 18:55 @830
por explorer
¿De qué línea estás hablando? Yo veo tres líneas...

Yo veo bien la expresión regular... Quizás lo que tienes que hacer es leer la documentación de ese componente Delphi para saber cómo extraer del resultado de la expresión regular los distintos valores capturados. Fíjate que has puesto dos pares de paréntesis de captura...

Re: Expresiones regulares en Delphi

NotaPublicado: 2013-06-03 19:10 @840
por BigBear
¡Ahhh!, ya encontré el error, problema solucionado.

P.D.: no me diste tiempo de editar el mensaje por eso dije eso de una sola línea, pensé que a esta hora no estabas disponible.

Re: Expresiones regulares en Delphi

NotaPublicado: 2013-06-03 19:55 @871
por explorer
¿Y cuál fue la solución?

Re: Expresiones regulares en Delphi

NotaPublicado: 2013-06-04 09:07 @421
por BigBear
Sí, era tan fácil que no la quería: decir, en realidad el error era mio estaba llamando al primer paréntesis y yo lo tenía que hacer con el segundo de la siguiente forma:
Sintáxis: [ Descargar ] [ Ocultar ]
Using delphi Syntax Highlighting
PerlRegEx1.SubExpressions[2]
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4