Hi,
s/(<[^>|"]+>)*"/&/g;
( bis ) gruppiert mit Speichern
* von dem vorherigen Teil (hier: der Gruppe) beliebig viele (auch 0)
Danach ein "
Da der gesamte Teil vor dem " optional ist (kann ja auch 0 mal vorkommen), wird jedes " durch & ersetzt.
Warum eigentlich?
Bei Ersetzung durch " wär's mir schon schleierhaft (für korrektes HTML ist es nicht notwendig, " außerhalb von "-begrenzten Attributwerten zu ersetzen).
Aber warum Du Anführungszeichen durch Kaufmannsund ersetzen willst, erschließt sich mir überhaupt nicht.
Desweiteren: Der Teil in der () hat andere Bedeutung als Du vermutest:
< und > matchen genau diese Zeichen.
Dazwischen hast Du eine negierte Zeichenklasse - die matcht auf ein beliebiges Zeichen außer den genannten "größer", "Pipe" und "Anführungszeichen".
Davon soll es mindestens eins geben.
Innerhalb einer Zeichenklasse haben die meisten Metacharacters keine Meta-Bedeutung mehr.
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.