elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  ayudita expresion regular
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 Ir Abajo Respuesta Imprimir
Autor Tema: ayudita expresion regular  (Leído 12,746 veces)
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: ayudita expresion regular
« Respuesta #20 en: 30 Octubre 2010, 15:39 pm »

Jajajajajajajajaja :laugh: :laugh: :laugh: :laugh:

Debug.Print te lo imprime en una ventana llamada Inmediato (esta abajo) cuando lo ejecutas.

No obstante puedes cambiar el Debug.Print por MsgBox si lo deseas.

DoEvents! :P


En línea

viher

Desconectado Desconectado

Mensajes: 113



Ver Perfil
Re: ayudita expresion regular
« Respuesta #21 en: 30 Octubre 2010, 16:34 pm »

hice las siguiente modificaciones pero no me devuelve ningún valor

Código
  1. Option Explicit
  2.  
  3. Public Function Get_Text(ByVal sText As String) As Collection
  4. Const sPatern                   As String = "\<div class\=""col_titulo col_superior"" \>\s*(.+)\s*\<\/div\>"
  5. Dim cTemp                       As New Collection
  6. Dim oRegExp                     As Object
  7. Dim oMatch                      As Object
  8. Dim oMatches                    As Object
  9. Dim Q                           As Long
  10.  
  11.    Set oRegExp = CreateObject("VBScript.RegExp")
  12.  
  13.    With oRegExp
  14.        .Pattern = sPatern
  15.        .Global = True
  16.        .IgnoreCase = True
  17.    End With
  18.  
  19.    Set oMatches = oRegExp.Execute(sText)
  20.  
  21.    For Q = 0 To oMatches.Count - 1
  22.        Set oMatch = oMatches(Q)
  23.        cTemp.Add oMatch.SubMatches(0)
  24.    Next Q
  25.  
  26.    Set Get_Text = cTemp
  27. End Function
  28. 'Sub que extrae las direccións url : Http, Ftp y Https _
  29.  de un archivo utilizando una expresión regular
  30. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  31.  
  32. Sub Extraer_Url(url_Path As String, Expresion As String)
  33.    'Variables para usar RegExp
  34.    Dim o_RegExp As RegExp
  35.    Dim o_Match As Match
  36.    Dim o_Matches As MatchCollection
  37.   'Variables Fso para abrir y leer el archivo en la variable contenido
  38.   Dim Contenido As String
  39.   'Lee el contenido del fichero y lo almacena en la var
  40.   Contenido = Text2.Text
  41.   'crea nuevo objeto RegExp
  42.   Set o_RegExp = New RegExp
  43.   ' Para que no distinga mayúsculas de minúsculas
  44.   o_RegExp.IgnoreCase = True
  45.   o_RegExp.Global = True
  46.   ' A la propiedad Pattern se le pasa la Expresión regular
  47.   o_RegExp.Pattern = Expresion
  48.   'Ejecuta y busca
  49.   Set o_Matches = o_RegExp.Execute(Contenido)
  50.   ' Recorre en la colección
  51.   For Each o_Match In o_Matches
  52.      'Agrega las url al control List
  53.      List1.AddItem Replace(o_Match.Value, Chr(34), vbNullString)
  54.   Next
  55.  
  56. End Sub
  57.  
  58. Private Sub Command1_Click()
  59.    Dim Expresion As String
  60.    ' Expresión regular
  61.    Expresion = "\<div class\=\""col_titulo col_superior\""\>(.+)\<\/div\>"
  62.        Call Extraer_Url(Text2.Text, Expresion)
  63.    Text1.Text = List1.List(0)
  64.    List1.Clear
  65. End Sub
  66.  
  67. Private Sub Command2_Click()
  68. Text2.Text = WebBrowser1.Document.documentElement.innerHTML
  69. End Sub
  70.  
  71. Private Sub Command3_Click()
  72.    Dim vItem                   As Variant
  73. Dim S                       As String
  74.    S = Text1.Text
  75.  
  76.    For Each vItem In Get_Text(S)
  77.        Text3.Text = vItem
  78.    Next vItem
  79. End Sub
  80.  
  81. Private Sub Form_Load()
  82. WebBrowser1.Navigate ("http://www.rinconjuegos.com/just-jhon/")
  83.    Me.Caption = " Ejemplo que utiliza expresiones regulares" _
  84.                 & " Para extraer los enlaces de un archivo"
  85.  
  86.    Command1.Caption = " Abrir archivo y Extraer "
  87. End Sub
  88.  


En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: ayudita expresion regular
« Respuesta #22 en: 30 Octubre 2010, 16:52 pm »

.
Si solo necesitas una extracción haz asi:

Código
  1. Option Explicit
  2.  
  3. Public Function Get_Text(ByVal sText As String) As String
  4. Const sPatern                   As String = "\<div class\=""col_titulo col_superior"" \>\s*(.+)\s*\<\/div\>"
  5. Dim oRegExp                     As Object
  6. Dim oMatch                      As Object
  7. Dim oMatches                    As Object
  8.  
  9.    Set oRegExp = CreateObject("VBScript.RegExp")
  10.  
  11.    With oRegExp
  12.        .Pattern = sPatern
  13.        .Global = True
  14.        .IgnoreCase = True
  15.    End With
  16.  
  17.    Set oMatches = oRegExp.Execute(sText)
  18.    Set oMatch = oMatches(0)
  19.  
  20.    Get_Text = oMatch.SubMatches(0)
  21. End Function
  22.  
  23. Private Sub Form_Load()
  24. Dim S                       As String
  25.    S = "<div class=""col_titulo col_superior"" > ¡Vivan las ranas!   </div>"
  26.  
  27.    MsgBox Get_Text(S)
  28. End Sub

Personalmente ya no te voy a ayudar mas en este hilo, te estamos haciendo los deberes de una manera exagerada. :¬¬
Creo que debes estudiar mucho, tienes algunos errores muy basicos. :-\
Si te fijas, con las funciones que te di y un poco de sentido comun, no te deberia de costar hacerlo. ;)

DoEvents! :P
En línea

viher

Desconectado Desconectado

Mensajes: 113



Ver Perfil
Re: ayudita expresion regular
« Respuesta #23 en: 30 Octubre 2010, 17:01 pm »

vale,solo una cosilla mas,lo que me devuelve tu code es "vivan las ranas",pero yo quiero que me devuelva lo que hay escrito en el Text1.Text y hago lo siguiente:

Código
  1. Dim S                       As String
  2.    S = Text1.Text
  3.  
  4.    MsgBox Get_Text(S)

pero me da error,porque? gracias!
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: ayudita expresion regular
« Respuesta #24 en: 30 Octubre 2010, 17:03 pm »

Hay algo mal, por ahi no es la expresion regular que necesitas

EDIT:

Código
  1.   For Each o_Match In o_Matches
  2.      'Agrega las url al control List
  3.      List1.AddItem Replace(o_Match.Value, Chr(34), vbNullString)
  4.   Next
  5.  

Deberías cambiarlo por esto

Código
  1.   For Each o_Match In o_Matches
  2.      'Agrega las url al control List
  3.      List1.AddItem Replace(o_Match.SubMatches(0), Chr(34), vbNullString)
  4.   Next
  5.  

Porque es como te dije, debes obtener los submatches, no los matches en si
« Última modificación: 30 Octubre 2010, 17:17 pm por raul338 » En línea

viher

Desconectado Desconectado

Mensajes: 113



Ver Perfil
Re: ayudita expresion regular
« Respuesta #25 en: 30 Octubre 2010, 17:13 pm »

Hay algo mal, por ahi no es la expresion regular que necesitas

EDIT:

Código
  1.   For Each o_Match In o_Matches
  2.      'Agrega las url al control List
  3.      List1.AddItem Replace(o_Match.Value, Chr(34), vbNullString)
  4.   Next
  5.  

Deberías cambiarlo por esto

Código
  1.   For Each o_Match In o_Matches
  2.      'Agrega las url al control List
  3.      List1.AddItem Replace(oMatch.SubMatches(0), Chr(34), vbNullString)
  4.   Next
  5.  

Porque es como te dije, debes obtener los submatches, no los matches en si

Variable no definida  :-\
« Última modificación: 30 Octubre 2010, 17:16 pm por viher » En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: ayudita expresion regular
« Respuesta #26 en: 30 Octubre 2010, 17:17 pm »

viher fijate las variables o_Match, o_Matches, y o_RegExp .... cambiales el nombre :¬¬

en este pequeño tipo de cosas las deberias hacer por ti mismo

Aunque el fallo fue mio, deberias darte cuenta
En línea

viher

Desconectado Desconectado

Mensajes: 113



Ver Perfil
Re: ayudita expresion regular
« Respuesta #27 en: 30 Octubre 2010, 17:31 pm »

viher fijate las variables o_Match, o_Matches, y o_RegExp .... cambiales el nombre :¬¬

en este pequeño tipo de cosas las deberias hacer por ti mismo

Aunque el fallo fue mio, deberias darte cuenta

gracias raul338,ya lo conseguí  ;-)
En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: ayudita expresion regular
« Respuesta #28 en: 31 Octubre 2010, 02:56 am »

viher fijate las variables o_Match, o_Matches, y o_RegExp .... cambiales el nombre :¬¬

en este pequeño tipo de cosas las deberias hacer por ti mismo

Aunque el fallo fue mio, deberias darte cuenta

gracias raul338,ya lo conseguí  ;-)

hallelujah :laugh: :laugh: :laugh: :laugh:

DoEvents! :P
En línea

viher

Desconectado Desconectado

Mensajes: 113



Ver Perfil
Re: ayudita expresion regular
« Respuesta #29 en: 31 Octubre 2010, 12:45 pm »

alguien me puede pasar algún tutorial para aprender Regexp?? ya que he estado mirando y no he encontrado ninguno para VB6. Gracias!
En línea

Páginas: 1 2 [3] 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Expresión Regular
Desarrollo Web
Shell Root 4 4,390 Último mensaje 10 Abril 2011, 22:26 pm
por Shell Root
Aplicar expresión regular en el resultado de un curl
PHP
Servia 3 3,681 Último mensaje 28 Agosto 2011, 14:11 pm
por WHK
ayuda con una expresion regular :(
Programación General
Elemental Code 6 4,662 Último mensaje 23 Mayo 2012, 04:10 am
por Elemental Code
duda sobre patron de expresion regular
Programación General
MagnusIvanovich 5 3,447 Último mensaje 14 Marzo 2013, 20:11 pm
por 1mpuls0
Ayuda Expresion Regular
Ingeniería Inversa
macmaikel 2 2,633 Último mensaje 11 Junio 2013, 03:36 am
por macmaikel
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines