Und
Set RegExeMatch = RegExe.Execute(strResult)
kann auch raus...

CU
Schmiddl

PS: Ich will golfen!!!

Am 30.01.2004 um 11:28 schrieb Michael Schmidt:

L�sst mir ja keine Ruhe, sowas :-)

Noch besser (ohne Schleife):

Function ReplaceTheShit(strResult)
Set RegExe = New RegExp
With RegExe
.Pattern = "(http:[/]{2})?(www.([a-zA-Z0-9]|[/.]|[~])*)"
.IgnoreCase = True
.Global = True
End With
Set RegExeMatch = RegExe.Execute(strResult)
ReplaceTheShit = RegExe.Replace(strResult, "<a href=""http://$2""; target=""_blank"">$2</a>")
Set RegExe = Nothing
End Function


CU
Schmiddl

Am 30.01.2004 um 11:26 schrieb Schwingenheuer:

Stimmt, ich Obertrottel ;-)
Danke Schmiddl.
Gr��e, Gudula

----- Original Message -----
From: "Michael Schmidt" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 30, 2004 11:08 AM
Subject: Re: [Coffeehouse] RegEx: URL erkennen und ersetzen


Ja, nu...
Du setzt ja in der for...next-Schleife die Variable strOutput immer
neu, ausgehend von dem �bergebenen strResult, d.h. das Ersetzen vom
ersten Durchlauf kommt gar nicht durch. Warum eigentlich Regex-Replace?
Funzt auch so:


For Each Match in RegExeMatch
   if instr(match.value,"http://";)=0 then
    strResult = Replace(strResult, Match.Value, "<a href=""http://"; &
Match.Value &
"""  target=""_blank"">" & Match.Value &"</a>")
    else
    strResult = Replace(strResult, Match.Value, "<a href=""" &
Match.Value &  """
target=""_blank"">" & Match.Value &"</a>")
    end if
Next

CU
Schmiddl

Am 30.01.2004 um 10:53 schrieb Schwingenheuer:

<
Bitte mal Beispiel input/Output posten.
 Die Regex so wie sie ist braucht ja immer www im Match, aber Du
willst ja http:// *oder* www matchen falls ich das nicht falsch
verstanden habe.
Die Regex so wie sie jetzt ist l�sst sich �brigen noch verbessern:

(http:[/]{2})?www.([a-zA-Z0-9]|[/.]|[~])*

Regex-golf, sozusagen :-) Und die 'oder' hinten drin kann man auch
noch loswerden wenn man will, dann wirds nochmal schneller.
Gr�sse,


Aber irgendwie ist das nicht das Problem. Es ist nat�rlich gut, wenn man das Muster noch verbessern k�nnte. Aber testet nochmal selbst. Die Links werden auch erkannt, mit und ohnen http://. Aber es wird im Resultat nur der 2. replaced.

<%
dim Ausgabe
 Ausgabe= "Dies ist ein Link www.test.info Dies ist auch ein Link
www.texysstffsdafsdffd.info einfach mal testen"
 Function ReplaceTheShit(strResult)
  Set RegExe = New RegExp
  With RegExe
   .Pattern = "(http:[/]{2})?www.([a-zA-Z0-9]|[/.]|[~])*"
   .IgnoreCase = True
   .Global = True
  End With
 Set RegExeMatch = RegExe.Execute(strResult)
  For Each Match in RegExeMatch
  if instr(match.value,"http://";)=0 then
   strOutput = RegExe.Replace(strResult, "<a href=""http://"; &
Match.Value &
"""  target=""_blank"">" & Match.Value &"</a>")
   else
   strOutput = RegExe.Replace(strResult, "<a href=""" & Match.Value &
"""
target=""_blank"">" & Match.Value &"</a>")
   end if
  next
  If strOutput = "" Then
   ReplaceTheShit = strResult
  Else
   ReplaceTheShit = strOutput
  End If
  Set RegExe = Nothing
 End Function
 dim Alttext
 Alttext = "gibts nicht"
 if Ausgabe <> "" then
 Alttext = Replace(ReplaceTheShit(Ausgabe),vbcrlf,"<br>")
 end if
 Response.write Alttext
 %>

Gr��e, Gudula

_______________________________________________ Coffeehouse mailing list [EMAIL PROTECTED] http://www.glengamoi.com/mailman/listinfo/coffeehouse

Antwort per Email an