Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hi und hallo,

leider muss ich feststellen dass die regular expressions einfach meine fähigkeiten übersteigen, oder mir einfach nicht liegen. hab schon viel darüber gelesen und check die tutorials und erklärungen, wenns dann an selbermachen geht fehlt mir aber leider immer was.

ich möchte gerne folgendes:


in einem text sollen alle 

< durch <

und > durch >

ersetzt werden.

aber nur wenn die < und > nicht zu einen <a href="...>xxx</a> tag gehören.

auf deutsch:

alle html tags sollen als solche dargestellt werden, ähnlich der "code" funktion hier im forum.

aber <a> tags sollen wirklich links sein.

kann mir da jemand helfen?

vielen dank

Geschrieben

ohhhhhh! jetzt fällts mir ein was noch fehlte:

das ganze brauch ich in einer ASP anwendung. die kennt keine strip_tags funktion, also brauch ich wirklich die richtige regex

sorry, stimmt schon normalerweise poste ich nur noch php-threads :rolleyes:

Geschrieben
und wenn es ein <a> tag ist soll nix replaced werden...wo is die funktionalität??

Stimmt, daran hab ich gar nicht gedacht!

Ich überleg noch mal, poste wenn ich was habe.

[EDIT]

Gibt es denn irgendwelche Erkennungsmerkmal in deinem Text, ob es sich um ein Tag handelt oder nicht (zum Beispiel: bei Tags folgt direkt auf < ein Buchstabe, sonst ein Leerzeichen oder eine Zahl) ?

[/EDIT]

Geschrieben

wow...so viel ist das??? muss ich mich mal laaaaange hinsetzen und das checken.

mir ist aber noch nicht klar wie genau bzw. wo genau das ersetzen wirklich stattfindet. ich meine: wo genau wird das < durch < ersetzt?

mann ist das peinlich da gar keine ahnung zu haben...

Geschrieben

Ersetzung findet keine statt. Das ist das Suchmuster.

suchmuster: <(/?(?!a\s+)\w+(\s*\w*=["|'].+?["|'])*\s*/?)>

ersetzen: <\1> ggf. <\$1>

für php (ja ich weiss du nimmst keins):


$neu = preg_replace("{<(/?(?!a\s+)\w+(\s*\w*=["|'].+?["|'])*\s*/?)>}","<\$1>",$alt);
[/PHP]

ich hoffe mal, ich habe mich da jetzt nicht vertan

Der Link ist für .NET: http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemTextRegularExpressionsRegexClassReplaceTopic.asp

Geschrieben

Ich habe etwas:

/(<[^a|\/])/si

findet alle <, denen kein "a" oder "/" direkt folgt

/(?<!<\/a|\")>/si

findet alle >, vor denen direkt kein </a und kein " steht

Das bedeutet auch, dass link-Tags immer so geschrieben werden müssen:

<a href="..">

</a>

(ohne Leerzeichen oder sonstiges hinter "<" bzw. vor ">")

und demzufolge einem >, das ersetzt werden soll, kein ",a oder A voransteht

Geschrieben

Seltsam, bei mir funktionierts einwandfrei. Aber es könnte vielleicht daran liegen, dass ich die preg-funktionen von PHP benutze und nicht ASP.


$parr = array("/(?<!<\/a|\")>/si","/(<[^a|\/])/si");
$rarr = array(">","<");
$text=<<<ENDTEXT
in einem text sollen alle
< durch <
und > durch >
ersetzt werden.
aber nur wenn die < und > nicht zu einen <a href="...">xxx</a> tag gehören.
ENDTEXT;

echo preg_replace($parr,$rarr,$text);
[/PHP]

ergibt:

[code] in einem text sollen alle <durch < und > durch > ersetzt werden. aber nur wenn die <und > nicht zu einen <a href="...">xxx</a> tag gehören. [/code]

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...