Logo: Proxomitron - Ein Universeller Webfilter

Proxomitrons Filtersprache

Einführung in die Grundlagen

Bevor du diese Seite liest, solltest du die Beschreibung des Filtereditors gelesen haben.

Noch ein Hinweis: Ich habe mir den Kopf darüber zerbrochen, wie ich das Wort "matching" bzw. "match" in seinen zahlreichen Zusammenhängen übersetzen soll. Der Autor der englischen Dokumentation benutzt es dermaßen vieldeutig, dass ich nicht weiß, wie ich es ins Deutsche übersetzen könnte. "Mustervergleich" wäre unpassend, da hier nicht nur Muster gesucht, sondern auch "verbraucht" werden. Dieses "Verbrauchen" von "gematchtem" Quelltext wird in der englischen Dokumentation ebenfalls als "matching" bezeichnet. Genauso wie das Kopieren von erfasstem Quelltext in Variablen. Mir bleibt deshalb keine andere Wahl, als zahlreiche Begriffe zu umschreiben, damit ihre Bedeutung klar wird.

Proxomitrons Filtersprache ist angelehnt an reguläre Ausdrücke (engl.: "Regular Expressions"), wie sie z.B. in guten Editoren und Suchprogrammen benutzt werden, um Texte mit veränderlichen Bestandteilen zu umschreiben. Sie geht aber weit über diese Möglichkeiten hinaus.

Das Grundprinzip besteht darin, dass der Quelltext aller Webseiten nach einer im Feld "Vergleichsausdruck" (engl.: "Matching Expression") definierten Zeichenfolge durchsucht wird. Wird diese gefunden, wird sie durch eine im Feld "Ersetzungsausdruck" (engl.: "Replacement Text") definierte Zeichenfolge ersetzt.

In die beiden Eingabefelder können aber nicht nur Textstücke eingetragen werden, sondern auch eine ganze Reihe von Operatoren, Befehlen und auch Funktionsaufrufen.

Für Anfänger sehen Proxomitron-Filter oft kryptisch aus. Das liegt daran, dass bestimmten Zeichen Funktionen zugeordnet sind. Man spricht von "meta characters", Metazeichen. Eines der einfachsten Metazeichen ist das Sternchen *. Es dient als Platzhalter für eine beliebige Anzahl von Zeichen im Quelltext.

Der Vergleichsausdruck ka*dünger würde also folgende Zeichenfolgen abdecken:
Kakteendünger, Kakteen brauchen speziellen Dünger, Karnivoren vertragen nur selten Dünger.

Übertragen auf HTML bedeutet das, dass du z.B. alle IMG-Tags "einfangen" kannst, wenn du schreibst: <img*>

Es ist auch möglich, Textteile in Variablen zu kopieren und beim Ersetzen wieder einzufügen.

Filter/Ausdruck
Vergleichsausdruck: <img*src=(\w)\1*>
Ersetzungsausdruck: <img src=\1 border="1">

Dieses Beispiel führt ein paar neue Operatoren ein:

Wenn der Filter in Aktion ist, dann sieht das so aus:

Auswirkung auf Quelltext
Eingabe: <img align="left" src="bison.gif" alt="Mein Hausbison" >
Ausgabe: <img src="bison.gif" border="1">

Der Teil in blau ist das, was das erste * erfasst hat.
Der Teil in rot ist das, was das (\w)\1 erfasst hat.
Der Teil in grün ist das, was das letzte * erfasst hat.

Beachte also, dass Text, der nicht in Variablen gespeichert wird, nicht mehr im Endergebnis auftaucht!

Nun ändern wir den Ersetzungsausdruck und füttern den Filter mit dem selben Quelltext:

Filter/Ausdruck
Vergleichsausdruck: <img*src=(\w)\1*>
Ersetzungsausdruck: <a href=\1> ein Bild </a>
Auswirkung auf Quelltext
Eingabe: <img align="left" src="bison.gif" alt="Mein Hausbison">
Ausgabe: <a href="bison.gif"> ein Bild </a>

Und schon haben wir ein Bild in einen Link auf ein Bild umgewandelt.

Ich hoffe, ich konnte dir mit diesem Text eine erste Vorstellung davon vermitteln, wie die Quelltextbearbeitung mit Proxomitron-Filtern abläuft.

Lies weiter bei den Metazeichen.

© Michael Bürschgens <website@proxomitron.de>