Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - viher

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

Código (vb) [Seleccionar]
Option Explicit

Public Function Get_Text(ByVal sText As String) As Collection
Const sPatern                   As String = "\<div class\=""col_titulo col_superior"" \>\s*(.+)\s*\<\/div\>"
Dim cTemp                       As New Collection
Dim oRegExp                     As Object
Dim oMatch                      As Object
Dim oMatches                    As Object
Dim Q                           As Long

    Set oRegExp = CreateObject("VBScript.RegExp")

    With oRegExp
        .Pattern = sPatern
        .Global = True
        .IgnoreCase = True
    End With

    Set oMatches = oRegExp.Execute(sText)

    For Q = 0 To oMatches.Count - 1
        Set oMatch = oMatches(Q)
        cTemp.Add oMatch.SubMatches(0)
    Next Q

    Set Get_Text = cTemp
End Function
'Sub que extrae las direccións url : Http, Ftp y Https _
de un archivo utilizando una expresión regular
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub Extraer_Url(url_Path As String, Expresion As String)
    'Variables para usar RegExp
    Dim o_RegExp As RegExp
    Dim o_Match As Match
    Dim o_Matches As MatchCollection
   'Variables Fso para abrir y leer el archivo en la variable contenido
   Dim Contenido As String
   'Lee el contenido del fichero y lo almacena en la var
   Contenido = Text2.Text
   'crea nuevo objeto RegExp
   Set o_RegExp = New RegExp
   ' Para que no distinga mayúsculas de minúsculas
   o_RegExp.IgnoreCase = True
   o_RegExp.Global = True
   ' A la propiedad Pattern se le pasa la Expresión regular
   o_RegExp.Pattern = Expresion
   'Ejecuta y busca
   Set o_Matches = o_RegExp.Execute(Contenido)
   ' Recorre en la colección
   For Each o_Match In o_Matches
      'Agrega las url al control List
      List1.AddItem Replace(o_Match.Value, Chr(34), vbNullString)
   Next

End Sub

Private Sub Command1_Click()
    Dim Expresion As String
    ' Expresión regular
    Expresion = "\<div class\=\""col_titulo col_superior\""\>(.+)\<\/div\>"
        Call Extraer_Url(Text2.Text, Expresion)
    Text1.Text = List1.List(0)
    List1.Clear
End Sub

Private Sub Command2_Click()
Text2.Text = WebBrowser1.Document.documentElement.innerHTML
End Sub

Private Sub Command3_Click()
    Dim vItem                   As Variant
Dim S                       As String
    S = Text1.Text

    For Each vItem In Get_Text(S)
        Text3.Text = vItem
    Next vItem
End Sub

Private Sub Form_Load()
WebBrowser1.Navigate ("http://www.rinconjuegos.com/just-jhon/")
    Me.Caption = " Ejemplo que utiliza expresiones regulares" _
                 & " Para extraer los enlaces de un archivo"

    Command1.Caption = " Abrir archivo y Extraer "
End Sub
#42
Cita de: Mr. Frog en 30 Octubre 2010, 15:22 PM
Creo que no has visto mi respuesta... :silbar:
Como bien te dijo el feo de raul, usa SubMatches. :)

DoEvents! :P


uso el código que me pusiste pero no hace nada...
#43
Cita de: raul338 en 30 Octubre 2010, 15:03 PM
jeje, cuando conviertes comillas en vb se transforma en "" jeje :P

Código (vb) [Seleccionar]
Expresion = "\<div class\=\" & Chr$(34) & "col_titulo col_superior\" & Chr$(34) & "\>(.+)\<\/div\>"

o sino

Expresion = "\<div class\=\""col_titulo col_superior\""\>(.+)\<\/div\>"

lo he probado pero me devuelve todo, es decir:

<DIV class=col_titulo col_superior>TEXTO A SACAR</DIV>

y yo lo que necesito es que me saque solo el "TEXTO A SACAR" sin los divs por los lados.

gracias!
#44
Error de sintaxis:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
    Dim Expresion As String
    ' Expresión regular
    Expresion = "\<div class\=\"col_titulo col_superior\"\>(.+)\<\/div\>"
        Call Extraer_Url(Text2.Text, Expresion)
    Text1.Text = List1.List(0)
    List1.Clear
End Sub
#45
una última preguntilla,es que no consigo resolverla,quiero sacar lo siguiente,que con una expresion regular sea:

<div class="col_titulo col_superior" >TEXTO A SACAR</div>

es decir una expresión regular que de alguna forma lea desde <div class="col_titulo col_superior" > hasta </div> y me saque el texto que hay dentro del div. Me haría falta esa expresión regular.

Gracias!
#46
pues si ya funciona a la perfección, gracias por la ayuda  ;-)
#47
el problema que me surge ahora es que intento sacar la url desde un texto que tengo en el text2.text,pero no consigo sacarla,aqui va el source:

Código (vb) [Seleccionar]
'Sub que extrae las direccións url : Http, Ftp y Https _
de un archivo utilizando una expresión regular
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub Extraer_Url(url_Path As String, Expresion As String)
   'Variables para usar RegExp
   Dim o_RegExp As RegExp
   Dim o_Match As Match
   Dim o_Matches As MatchCollection
  'Variables Fso para abrir y leer el archivo en la variable contenido
  Dim Contenido As String
  'Lee el contenido del fichero y lo almacena en la var
  Contenido = Text2.Text
  'crea nuevo objeto RegExp
  Set o_RegExp = New RegExp
  ' Para que no distinga mayúsculas de minúsculas
  o_RegExp.IgnoreCase = True
  o_RegExp.Global = True
  ' A la propiedad Pattern se le pasa la Expresión regular
  o_RegExp.Pattern = Expresion
  'Ejecuta y busca
  Set o_Matches = o_RegExp.Execute(Contenido)
  ' Recorre en la colección
  For Each o_Match In o_Matches
     'Agrega las url al control List
     List1.AddItem Replace(o_Match.Value, Chr(34), vbNullString)
  Next

End Sub

Private Sub Command1_Click()
   Dim Expresion As String
   ' Expresión regular
   Expresion = "(ftp|http|https):\/\/(\S)+.swf" & Chr(34)
       Call Extraer_Url(Text2.Text, Expresion)
   Text1.Text = List1.List(0)
   List1.Clear
End Sub

Private Sub Command2_Click()
Text2.Text = WebBrowser1.Document.documentElement.innerHTML
End Sub

Private Sub Form_Load()
WebBrowser1.Navigate ("http://www.web.com/")
   Me.Caption = " Ejemplo que utiliza expresiones regulares" _
                & " Para extraer los enlaces de un archivo"

   Command1.Caption = " Abrir archivo y Extraer "
End Sub


y aqui el original que lo hace através de un common dialog y archivos (este funciona perfectamente)

Código (vb) [Seleccionar]
'Sub que extrae las direccións url : Http, Ftp y Https _
de un archivo utilizando una expresión regular
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub Extraer_Url(url_Path As String, Expresion As String)


   'Variables para usar RegExp
   Dim o_RegExp As RegExp
   Dim o_Match As Match
   Dim o_Matches As MatchCollection

 
 
  'Variables Fso para abrir y leer el archivo en la variable contenido
  Dim fso As Object, F As Object, Contenido As String
 
  Set fso = CreateObject("Scripting.FileSystemObject")
  'Abre el archivo
  Set F = fso.OpenTextFile(url_Path, 1)
 
  'Lee el contenido del fichero y lo almacena en la var
  Contenido = F.ReadAll
 
  'crea nuevo objeto RegExp
  Set o_RegExp = New RegExp
 
  ' Para que no distinga mayúsculas de minúsculas
  o_RegExp.IgnoreCase = True
  o_RegExp.Global = True
 
  ' A la propiedad Pattern se le pasa la Expresión regular
  o_RegExp.Pattern = Expresion
  'Ejecuta y busca
  Set o_Matches = o_RegExp.Execute(Contenido)
   
  ' Recorre en la colección
  For Each o_Match In o_Matches
     'Agrega las url al control List
     List1.AddItem Replace(o_Match.Value, Chr(34), vbNullString)
  Next
 
  'Cierra el archivo
  F.Close
 

 
 
End Sub

Private Sub Command1_Click()

   Dim Expresion As String
   
   ' Expresión regular
   Expresion = "(ftp|http|https):\/\/(\S)+.swf" & Chr(34)

   With CommonDialog1
       .ShowOpen
   
       If .FileName = "" Then Exit Sub
   
       'Le pasa el path del archivo a leer y la expresión regular anterior
       Call Extraer_Url(.FileName, Expresion)
   Text1.Text = List1.List(0)
   List1.Clear
   End With

End Sub

Private Sub Form_Load()
   Me.Caption = " Ejemplo que utiliza expresiones regulares" _
                & " Para extraer los enlaces de un archivo"

   Command1.Caption = " Abrir archivo y Extraer "
End Sub


pero yo necesito arreglar el primer source para sacarlo directamente del webbrowser? que estoy haciendo mal? gracias
#48
Cita de: Mr. Frog en 26 Octubre 2010, 22:11 PM
También podrias usar esta, aunque no incluye validación:
(https?|ftp):\/\/(\S)+.swf

Código (vb) [Seleccionar]
http://foro.elhacker.net/programacion_visual_basic/ayudita_expresion_regular-t308911.0.html 'False

http://foro.elhacker.net/programacion_visual_basic/ayudita_expresion_regular-t308911.0.swf 'True


DoEvents! :P

me sirvió tu expresión a la perfección. gracias  ;-)
#49
Cita de: raul338 en 26 Octubre 2010, 21:33 PM
(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?\*.swf

Deberia ir en Programacion general esto :P

no me extrae la url con esa expresion  :huh:
#50
hola,tengo la siguiente expresión regular que sirve para coger urls y funciona perfectamente,pero necesitaria que me buscara urls que acabaran en .swf

aqui os dejo la expresión que tengo

Dim Expresion As String
   
    ' Expresión regular
    Expresion = "(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)" _
             & "?(\/|\/([\w#!:.?+=&%@!\-\/]))?" & Chr(34)


cómo podría añadir para que me busque .swf??

gracias por la ayuda