DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: ASP Classic | Thema: Re: Mit RegEx Html ignorieren | Von: G. Guest ( 29.10.2003 08:40)

Hi Sven
Das hab ich vor dem RegEx Versuch auch probiert, aber es hat nicht so recht gefunzt.
Was ich hin gekriegt habe war, das er mir die Links in Ruhe lässt, aber leider nicht die HTMl-Tags.

Vielleicht findest Du ja eine Lösung:
-----------------------------------------------------------
function ToReplace(Text, SuchBegriff)
'Startwerte für die Such/Replace Funktion
TextLaenge = Len(Text)
SuchBegriffLaenge = Len(SuchBegriff)
SuchPosition = 1
aktuellePosition = 1
korrigiertePosition = 1
nText = ""
nrText = ""
tempText = ""
tempSuchbegriff = ""

DO WHILE aktuellePosition <> 0

'Position des gefundenen Suchbegriffes
aktuellePosition = InStr(SuchPosition, Text, SuchBegriff, 1)

'Wenn kein Suchbegriff gefunden --> Abbruch der Schleife
if aktuellePosition = 0 Then
EXIT DO
end if

'Zu prüfender Textbereich bestimmen
'Länge des Textes vor Suchbegriff
ctLaenge = aktuellePosition - SuchPosition
checkText = Mid(Text, SuchPosition, ctLaenge)
checkTextLaenge = Len(checkText)

iPos = 1
yPos = 1

iAnzahl = 0
yAnzahl = 0

iCursorPos = 1
yCursorPos = 1

iSuchText ="<a"
iSuchTextLaenge = Len(iSuchText)

ySuchText ="</a>"
ySuchTextLaenge = Len(ySuchText)


'check erfolgreich wenn gleich viele "<a" wie "</a>" gefunden werden
'wenn nicht, ist es ein Link

While iCursorPos <> 0

iCursorPos = InStr(iPos, checkText, iSuchText, 1)

if iCursorPos <> 0 Then
'Anzahl der gefunden "iSuchText"
iAnzahl = iAnzahl +1

'Neue Startposition um den Text zu durchsuchen
iPos = iCursorPos + iSuchTextLaenge
end if

WEND

While yCursorPos <> 0

yCursorPos = InStr(yPos, checkText, ySuchText, 1)

if yCursorPos <> 0 Then
'Anzahl der gefunden "ySuchText"
yAnzahl = yAnzahl +1

'Neue Startposition um den Text zu durchsuchen
yPos = yCursorPos + ySuchTextLaenge
end if

WEND

'Übereinstimmender Begriff mit Suchbegriff (mögliche unterschiedliche Schreibweise)
tempSuchbegriff = Mid(Text, aktuellePosition, SuchBegriffLaenge)

'Korrigierung der aktuellen Position
'Ermittlung des Textendes (vor Suchbegriff)
korrigiertePosition = aktuellePosition -1

'Länge des Textes vor Suchbegriff
tLaenge = aktuellePosition - SuchPosition

'Hat es Text vor dem Suchbegriff?
if aktuellePosition <> 0 Then
'Text bis Suchbegriff
tempText = Mid(Text, SuchPosition, tLaenge)
else
tempText = ""
end if


'Vergleich der Anzahl gefundenen iSuchText, ySuchText
'Wenn die Anzahl gleich ist, befindet sich der gefundene String nicht in einem Link
if yAnzahl = iAnzahl Then

'Text wird erstellt
nText = nText & tempText & "<span class='mark'>" & tempSuchbegriff & "</span>"
else
'gefundener String in einem <a Tag, Suchbegriff nicht markieren
'Text wird erstellt
nText = nText & tempText & tempSuchbegriff

end if
'Neue Startposition für die neue Suche wird erstellt
SuchPosition = aktuellePosition + SuchBegriffLaenge

LOOP

'Rest Text (ab dem letzten gefundenen Suchbegriff)
nrText = Mid(Text, SuchPosition, TextLaenge)

'Gibt den neu erstellt Text zurück
ToReplace = nText & nrText
End Function
-----------------------------------------------------------

Aufruf:
MarkTitel = ToReplace(Text, SuchBegriff)
Response.Write(MarkTitel)
-----------------------------------------------------------

Gruss
Daniel


Betreff Von Datum
Re: Mit RegEx Html ignorieren
Also je mehr ich darüber nachdenke desto eher meine ich das es ziemlich unglücklich ist html Tags in der DB zu haben.<br>Wenn z.B. einer nach "re" sucht...<br>Würde auch ein <a href... einen Treffer...
Sven Buhk 29.10.2003 09:13
Re: Mit RegEx Html ignorieren
Kannst mir auch ne Mail Adresse geben dann schick ich Dir ne Telefonnummer und wir telefonieren drüber denke das geht schneller oder ?
Sven Buhk 29.10.2003 09:14
Re: Mit RegEx Html ignorieren
Danke!<br><br>daniel.meier<br>at<br>fachmediacom(dot)ch<br><br>(ich hoffe, so kriegen mich die emailSpider nicht ;-) )
G. Guest 29.10.2003 09:53

Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Advanced Developers Conference vom 14.-15. Februar 2011

© Copyright 2003 ppedv AG