seleccionar un texto determinado en un textbox

Iniciado por soru13, 11 Agosto 2010, 00:20 AM

0 Miembros y 1 Visitante están viendo este tema.

soru13

hola,llevo varios dias buscando por internet como hacer lo siguiente y no lo encuentro por ningun lado.

Yo tengo un Textbox con un texto,por ejemplo el siguiente:

hola,esto es una prueba del texto,mi email es este email@gmail.com

bien,pues lo que necesito es que me copie una parte determinada con un criterio que le pongo,es decir algo asi, CRITERIO VB ("*@gmail.com"), no se muy bien como sería pero al estilo del buscador de archivos de windows,ya que el email va a variar y tendria que coger "variable@gmail.com",el caso es que no lo consigo de ninguna forma y no encuentro esto en internet.

Alguien me podría ayudar? Gracias

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.


Psyke1

#3
Cita de: Shell Root en 11 Agosto 2010, 00:23 AM
Expresiones regulares :D
Seh! :D

Más info:
http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular

Un ejemplo:
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/198-expresion-regular-extraer-url.htm

Para lo que buscas se me ocurre esto:
Citar(\S+@gmail\.com )

O esto para que no saque un mail incoherente (ej : mario($%234@gmail.com):
Citar([\w\.-_]+@gmail\.com )

PD: Nose porque co***es me pone un espacio antes de cerrar el parentesis... >:(

DoEvents¡! :P

soru13

*PsYkE1*  y con que código pongo esa expresión regular? por ejemplo si en Text1 está el texto pues que me saque lo seleccionado con la expresion regular a Text2.

Esque he estado mirando en internet ejemplos y me dice que tengo que añadir al proyecto el componente Microsoft VbScript regular Expressions. Y a mi no me aparece,quizás porque uso el windows 7.

un saludo y gracias!

Psyke1

#5
Mira, espero que no me "riñan" por hacerte los deberes:

Código (vb) [Seleccionar]
Public Function Get_Gmails(ByVal sText As String) As Collection
   Dim cTemp           As New Collection
   Dim oRegExp         As Object
   Dim oMatch          As Object
   Dim oMatches        As Object
   Dim sPatern         As String
   
   '# Para evitar las referencias
   Set oRegExp = CreateObject("VBScript.RegExp")
   
   sPatern = "([\w\.-_]+@gmail\.com )" '# Quitando el maldito espacio del final

   With oRegExp
       .Pattern = sPatern
       .Global = True
       .IgnoreCase = True
   End With
   
   Set oMatches = oRegExp.Execute(sText)

   For Each oMatch In oMatches
       cTemp.Add oMatch.Value
   Next
   
   Set Get_Gmails = cTemp
End Function

Private Sub Form_Load()
   Dim vItem               As Variant
   Dim sStringtoAnalyze    As String
   
   sStringtoAnalyze = "Hola, esto es un ejemplo mario.234@gmail.com para que veas que funciona mimamamemima_to2losdias@gmail.com"
   For Each vItem In Get_Gmails(sStringtoAnalyze)
       Debug.Print vItem
   Next
End Sub


Me devuelve:
Citarmario.234@gmail.com
mimamamemima_to2losdias@gmail.com

PD: Te envie un MP...

DoEvents¡! :P