
05/02/2003, 22:27
|
 | Colaborador | | Fecha de Ingreso: febrero-2001 Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses Puntos: 535 | |
Manoloweb, yo de expresiones regulares sé poco y nada pero por lo que puedo llegar a entender de tu ejemplo, no satisfacería los requerimientos de mrgubu ya que necesita no sólo resaltar el criterio de búsqueda (que con un simple replace alcanzaría, creo) sino que, además, necesita "recortar" de la totalidad de palabras del texto las 5 anteriores y posteriores a la palabra que concuerde con el criterio de búsqueda.
En la tarde estuve intentando hacer un script para ofrecerle pero por diversas cuestiones no pude finalizarlo... es más, quedó en un intento sin pulir y con algunos errores lógicos que paso a detallar:
Si la palabra buscada se encuentra antes de la quinta desde el comienzo del texto a buscar y/o hay menos de 5 palabras luego de ella hasta el fin de dicho string, el script falla.
Igualmente lo dejo por si a alguien le interesa y puede hacer algo con el:
<%
Criterio = "tren"
Dim Str(1)
Str(0) = "pero luego, el detenido cogió el tren y se dirigió hacia la frontera de argentina dónde se escaparía de las autoridades policiales."
Str(1) = "entonces fue cuando de repente el tren descarriló estallando en millones de partes."
For j = 0 to UBound(Str)
PosCriterio = InStr(Str(j), Criterio)
StrPreviaTmp = Trim(Left(Str(j), PosCriterio - 1))
StrPosteriorTmp = Trim(Right(Str(j), Len(Str(j)) - PosCriterio - Len(Criterio)))
PalabrasPrevias = Split(StrPreviaTmp, " ")
PalabrasPosteriores = Split(StrPosteriorTmp, " ")
Response.Write CHR(034) & "..."
For i = 4 to 0 step - 1
Response.Write PalabrasPrevias(UBound(PalabrasPrevias)-i) & " "
Next
Response.Write "<b>" & Criterio & "</b> "
For i = 0 to 4
Response.Write PalabrasPosteriores(i) & " "
Next
Response.Write "..." & CHR(034)
Response.Write "<p></p>"
Next
%> |