Retroceder   Foros del Web > Programación para sitios web > ASP Clásico

Respuesta
 
Herramientas Desplegado
Antiguo 27-abr-2008, 10:10   #1 (permalink)
eeeee ha deshabilitado el karma
 
Avatar de eeeee
 
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 385
Expresiones regulares

Hola otra vez.

Para aprender sobre las expresiones regulares, he hecho un código el cual busca en un archivo de texto las posibles concordancias según el patrón de la expresión.
Este es el codigo:
Código:
<%
Function RegExpTest(ExpresionRegular, archivo)
   Dim regEx, Match, Matches, RetStr
   Set regEx = New RegExp
   regEx.Pattern = ExpresionRegular
   regEx.IgnoreCase = True
   regEx.Global = True
   If (regEx.Test(archivo) = True) Then 
   Set Matches = regEx.Execute(archivo)
   For Each Match In Matches
      RetStr = RetStr & "Coincidencia encontrada en la posición "
      RetStr = RetStr & Match.FirstIndex & ". El valor coincidente es '"
      RetStr = RetStr & Match.Value & "'.<br>" & vbCrLf
   Next
   Else
    RetStr = "Fallo"
   End If
   RegExpTest = RetStr
End Function

strFileName = "pruebaz.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(Server.MapPath(strFileName))
Expresion="?<=<b>).+(?=</b>"

Do While Not objTextFile.AtEndOfStream
    strReadLineText = objTextFile.ReadLine
Response.Write(RegExpTest(Expresion, objTextFile))
Loop
%>
Pero da error en No coinciden los tipos: 'regEx.Test' o en 'regEx.Execute'.
He probado con varias expresiones y siempre da error.

Alguien me puede echar una mano.
Salu2
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
eeeee está desconectado   Responder Citando
Antiguo 28-abr-2008, 11:46   #2 (permalink)
Moderador
u_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy pronto
 
Avatar de u_goldman
 
Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.263
Enviar un mensaje por MSN a u_goldman
Re: Expresiones regulares

Hola eeeee

Para mi, el problema es lo que estás envíando a la función, lo que hace tu programa es leer secuencialmente un archivo de texto y comprobar línea a línea un patron, entonces debes envíarle la línea de texto, no el objeto.

Código:
Do While Not objTextFile.AtEndOfStream
    strReadLineText = objTextFile.ReadLine
    Response.Write(RegExpTest(Expresion, objTextFile))
Loop
%>
Código:
Do While Not objTextFile.AtEndOfStream
    strReadLineText = objTextFile.ReadLine
    Response.Write(RegExpTest(Expresion, strReadLineText ))
Loop
%>

Saludos
__________________
¿Qué darías por vivir un sueño?
u_goldman esta en línea ahora   Responder Citando
Antiguo 28-abr-2008, 12:17   #3 (permalink)
eeeee ha deshabilitado el karma
 
Avatar de eeeee
 
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 385
Re: Expresiones regulares

Hola u_golgman gracias por responder.
Pues si ese es el error ya que después de hacer este post seguí averiguando e hice otro código directo, sin la función y funciona bien, claro, pero le puse probando strReadLineText en vez de objTextFile .

Pero ahora me da error de Cuantificador inesperado, auque se que este error es por la expresión ya que con otras funciona.
Yo quiero que busque cualquier palabra o palabras que estén en negrita, no se de donde cogí esa expresión , pero falla,
Puedes decirme cual es el fallo o la espresión correcta ??
Gracias

Salu2
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
eeeee está desconectado   Responder Citando
Antiguo 28-abr-2008, 12:39   #4 (permalink)
Moderador
u_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy pronto
 
Avatar de u_goldman
 
Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.263
Enviar un mensaje por MSN a u_goldman
Re: Expresiones regulares

El problema de las expresiones regulares es que tienes que romperte la cabeza con el patron "correcto" y al otro día no sabes que hacen, a ver, trata este patron:

Código:
Expresion = "<b>(.|\n)+?</b>"
Saludos
__________________
¿Qué darías por vivir un sueño?
u_goldman esta en línea ahora   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 14:55.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93