Reguläre Ausdrücke

Top  Previous  Next

Mit regulären Ausdrücken (Regular Expressions) können Sie komplexe Such- und Filter-Ausdrücke erstellen. Die Groß/Kleinschreibung der eingegebenen regulären Ausdrücke spielt keine Rolle und wird nicht berücksichtigt.

Regex Funktionen

Reguläre Ausdrücke müssen in einer der folgenden Funktionen angegeben werden:

 

regex( ... )

Filtert den angegebenen regulären Ausdruck

Zum Beispiel: regex(\d+ downloads)

 

FirstRegex( ... )

Filtert nur das erste Vorkommen des angegebenen regulären Ausdrucks

Zum Beispiel: FirstRegex(\d+ downloads)

 

StartToRegex( ... )

Filtert alles vom Seitenbeginn bis zum ersten Vorkommen des angegebenen regulären Ausdrucks

Zum Beispiel: StartToRegex(\d+ Besucher)

 

RegexToRegex( ... , ... )

Filtert alles zwischen zwei regulären Ausdrücken

Zum Beispiel: RegexToRegex(Downloads\: \d+,Lizenz\:)

 

RegexToEnd( ... )

Filtert alles vom letzten Vorkommen des angegebenen regulären Ausdrucks bis zum Ende der Seite

Zum Beispiel: RegexToEnd(\d+ Benutzer online)

 

RegexCmp( ... )

Sucht den definierten regulären Ausdruck, extrahiert alle Ziffern aus dem gefundenen Ergebnis und vergleicht diese mit einer vordefinierten Zahl. Diese Funktion kann zum Beispiel zur Suchen mit Vergleich von Preisen verwendet werden. Zum Beispiel um nur Preise zu finden die höher als 1000 sind.

Zum Beispiel: RegexCmp(\d+([,\.]\d+)* Euro;,; > 1000)

Die regexcmp Funktion kann bei den Keywords, dem Ignorieren-Filter und dem Überwachen-Filter verwendet werden. Weiter unten finden Sie eine genaue Beschreibung dieser Funktion.

Elemente von Regulären Ausdrücken

Nachfolgend finden Sie eine Liste nützlicher Elemente, die von den Regulären Ausdrücken in WebSite-Watcher unterstützt werden:

 

\

Durch einen Backslash vor einem Zeichen wird dieses Zeichen "wörtlich" und nicht in einer anderen Funktionalität verwendet. Zum Beispiel findet \. einen Punkt und nicht ein beliebiges Zeichen, das ein Punkt in einem regulären Ausdruck sonst finden würde. Weitere Beispiele:\[ findet ein [, \" findet ein ", \\ findet einen Backslash.

.

Ein Punkt findet jedes Zeichen. Zum Beispiel findet 'go.d' die Stellen 'good' und 'gold'.

{ }

Findet eine bestimmte Anzahl von Zeichen.

{n} ... exakt n Treffer

{n,} ... mindestens n Treffer

{n,m} ... mindestens n, aber nicht mehr als m Treffer

[ ]

Zeichen in Klammern finden jedes einzelne Zeichen, dass in der Klammer vorkommt, aber kein anderes. Zum Beispiel findet [bot] b, o oder t. Es können auch Bereiche angegeben werden, so findet [a-z] jedes Zeichen von a bis z.

[-]

Ein Bindestrich in Klammern zeigt einen Bereich von Buchstaben an. Zum Beispiel findet [b-o] jedes Zeichen von b bis o.

|

Ein vertikaler Trennstrich findet entweder den Ausdruck vor oder nach dem vertikalen Trennstrich. Zum Beispiel findet 'abc|xyz' die Stellen 'abc' oder 'xyz'.

*

Ein Stern nach einem Zeichen findet jede beliebige Anzahl dieses Zeichens in Folge (auch keine Zeichen). Zum Beispiel findet bo*: bo, boo und booo, aber nicht b.

+

Ein Pluszeichen nach einem Zeichen findet jede beliebige Anzahl dieses Zeichens in Folge, mindestens jedoch ein Zeichen. Zum Beispiel findet bo+: boo und booo, aber nicht bo oder be.

\d+

findet alle Zahlen mit einer oder mehreren Stellen

\d*

findet alle Zahlen mit null oder mehr Stellen

\w+

findet alle Wörter (die Buchstaben oder Zahlen enthalten, a-z, A-Z und 0-9) mit einer oder mehreren Stellen. \w+ findet zB. Herzlich, Willkommen, auf, meiner, .... Bitte beachten Sie, dass \w+ nur Zahlen und Zeichen mit einem Ordinalwert kleiner als 128 berücksichtigt.

\s

findet ein "Whitespace" (= Leerzeichen, Tabulator, Carriage Return/Linefeed)

.*?

finde so wenig Zeichen wie möglich.

a.*?b bedeutet: "finde "a", gefolgt von so wenig Zeichen wie möglich, gefolgt von "b

[a-zA-Z\xA1-\xFF]+

findet alle Wörter mit einem oder mehreren Zeichen a-z, A-Z sowie Zeichen mit einem Ordinalwert größer als 161 (zB. ä oder Ü). Wenn die Wörter auch Zahlen enthalten dürfen, dann fügen Sie 0-9 zum Ausdruck hinzu: [0-9a-zA-Z\xA1-\xFF]+

(?-i)

Standardmäßig wird die Groß/Kleinschreibung bei regulären Ausdrücken ignoriert. Wenn Sie (?-i) am Anfang des regulären Ausdrucks angeben, dann wird die Groß/Kleinschreibung berücksichtigt. Zum Beispiel regex((?-i)\d+ Kommentare)

RegexCmp(...)

Die RegexCmp Funktion sucht den definierten regulären Ausdruck, extrahiert alle Ziffern aus dem gefundenen Ergebnis und vergleicht diese mit einer vordefinierten Zahl. Wenn der Vergleich gültig ist, dann wird das Ergebnis akzeptiert.

Diese Funktion benötigt 3 Parameter (getrennt mit einem Strichpunkt), die exakte Syntax lautet:

 

    regexcmp(regulärer Ausdruck; Dezimalpunktzeichen; Operator Zahl)

 

Parameter:

Regulärer Ausdruck
Der definierte reguläre Ausdruck extrahiert bestimmte Zahlen aus der Seite. Die Ergebnisse können Zeichen und Ziffern enthalten, zum Beispiel ein regulärer Ausdruck der Preise wie "Preis: 49,00 Euro" findet. Die regexcmp Funktion extrahiert anschließend alle Ziffern vom gefundenen Ergebnis und vergleicht die so extrahierte Zahl.
Dezimalpunktzeichen
Definiert ob in der Seite ein Punkt oder ein Beistrich als Dezimalpunkt verwendet wird. Gültige Werte sind "." und "," (ohne Hochkomma).
Operator Zahl
Gültige Operatoren:
= ... gleich
< ... kleiner als
<= ... kleiner oder gleich als
> ... größer als
>= ... größer oder gleich als
<> ... ungleich
Die Zahl definiert jene Zahl, die für den Vergleich herangezogen wird und kann optional einen Dezimalpunkt enthalten, zum Beispiel 49,95 oder 49.95. Tausender-Trennzeichen sind nicht erlaubt.

 

Beispiel:

regexcmp(\d+([,\.]\d+)* Euro;,; > 49.95)

 

Der erste Parameter sucht den regulären Ausdruck "\d+([,\.]\d+)* Euro" und extrahiert alle Ziffern vom gefundenen Ergebnis (inkl. Dezimalpunktzeichen). Zum Beispiel 1449,95
Der zweite Parameter definiert, welches Zeichen für den Dezimalpunkt verwendet wird. In diesem Beispiel das Zeichen ","
Der dritte Parameter vergleicht ob der Preis höher als 49.95 ist
Falls der extrahierte Preis kleiner oder gleich 49.95 ist, dann wird das Ergebnis ignoriert. Falls der extrahierte Preis höher als 49.95 ist, dann wird das Ergebnis akzeptiert.

Typische Beispiele

regex(bo*)

findet "b", "bo", "boo", "booooo"

 

regex(bx+)

findet "bxxxxxxxx", "bxx", "bx" aber nicht "b"

 

regex(\d+)

findet alle Zahlen

 

regex(\d+ Besucher)

findet "3 Besucher" oder "243234 Besucher" oder "2763816 Besucher"

 

regex(\d+ of \d+ messages)

findet "2 of 1200 messages" oder "1 of 10 messages"

 

RegexToEnd(\d+ of \d+ messages)

filtert alles vom letzten Vorkommen von "2 of 1200 messages" oder "1 of 10 messages" bis zum Ende der Seite

 

regex(MyText.{0,20})

findet "MyText" und die nächsten 20 Zeichen nach "MyText"

 

regex(\d\d.\d\d.\d\d\d\d)

findet Datumsangaben der Form 99.99.9999 oder 99-99-9999 (der Punkt im regulären Ausdruck steht für ein beliebiges Zeichen)

 

regex(\d\d\.\d\d\.\d\d\d\d)

findet Datumsangaben der Form 99.99.9999 (mit Punkt zwischen den Zahlen)

 

regex(([_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+))

findet alle E-Mail-Adressen

 

regexcmp(\d+([,\.]\d+)* Euro;,; > 49.95)

findet alle Preise im Format "9.999,99 Euro" und akzeptiert nur jene, die höher sind als 49,95 Euro