SDW Software

Hilfeseiten ÜbersichtSDW Software - WebsiteQuick DB Replacer 1.1

 

Reguläre Ausdrücke

Reguläre Ausdrücke stellen ein mächtiges Werkzeug zur Suche von Textbestandteilen dar. Entweder / Oder Unterscheidungen, die Suche nach Zeichengruppen, Zeilenanfängen oder Wortanfang und Wortende oder die spezifische Suche nach einer Zeichenfolge die einem Hyperlink oder einer Emailadresse entspricht sind nur ein paar Möglichkeiten.

Reguläre Ausdrücke gehören schon in einen etwas fortgeschrittenen Bereich der Verwendung von Computern so gibt es denn auch ganze Buchreihen über diese Technologie. Die Liste auf dieser Seite zeigt die Bedeutung der Zeichen in der Benutzung von regulären Ausdrücken die für die Suche in QuickDBReplacer zulässig sind. Verschiedenste Kombinationen sind möglich und bei schon mit Grundkenntnissen sind diese Ausdrücke ein sehr mächtiges Werkzeug.

Ein regulärer Ausdruck ist ein Textmuster, das aus normalen Zeichen (beispielsweise den Buchstaben a bis z) und Sonderzeichen, so genannten Metazeichen, besteht. Das Muster beschreibt eine oder mehrere Zeichenfolgen, zu denen beim Durchsuchen eines Textkörpers eine Entsprechung gefunden werden soll. Der reguläre Ausdruck dient als Vorlage für die Suche nach einer Entsprechung eines Zeichenmusters in der durchsuchten Zeichenfolge.

Im Folgenden finden Sie einige Beispiele für reguläre Ausdrücke:

Beispiel Entsprechung
"^\[ \t]*$" Entspricht einer Leerzeile.
"\d{2}-\d{5}" Überprüft die Gültigkeit einer ID-Nummer, die aus 2 Ziffern, einem Bindestrich und 5 weiteren Ziffern besteht.
"<(.*)>.*<\/\1>" Entspricht einem HTML-Tag.

Die folgende Tabelle enthält eine vollständige Liste der Metazeichen und ihres Verhaltens im Kontext regulärer Ausdrücke:

Zeichen Beschreibung
\ Markiert das nächste Zeichen entweder als Sonderzeichen, als Literal, als Rückverweis oder als oktalen Escapewert. Beispielsweise entspricht 'n' dem Zeichen "n". '\n' entspricht einem Zeilenumbruchzeichen. Die Sequenz '\\' entspricht "\", und '\(' entspricht "(".
^ Entspricht der Position am Anfang der Eingabezeichenfolge.
$ Entspricht der Position am Ende der Eingabezeichenfolge.
* Entspricht dem vorhergehenden Unterausdruck keinmal, einmal oder mehrere Male. Beispielsweise entspricht 'Zo*' sowohl "Z" als auch "Zoo". * ist äquivalent zu '{0,}'.
+ Entspricht dem vorhergehenden Unterausdruck einmal oder mehrere Male. Beispielsweise entspricht 'Zo+' sowohl "Zo" als auch "Zoo", aber nicht "Z". + ist äquivalent zu '{1,}'.
? Entspricht dem vorhergehenden Unterausdruck keinmal oder einmal. Beispielsweise entspricht 'habe(n)?' dem "habe" in "habe" oder "haben". ? ist äquivalent zu '{0,1}'.
{n} n ist eine nicht negative Ganzzahl. Entspricht exakt n Mal. Beispielsweise entspricht 'o{2}' nicht dem "o" in "Robert", jedoch den beiden "o" in "Boot".
{n,} n ist eine nicht negative Ganzzahl. Entspricht mindestens n Mal. Beispielsweise entspricht 'o{2,}' nicht dem "o" in "Robert", aber allen "o" in "Boooot". 'o{1,}' ist äquivalent zu 'o+'. 'o{0,}' ist äquivalent zu 'o*'.
{n,m} m und n sind nicht negative Ganzzahlen, wobei n <= m. Entspricht mindestens n und höchstens m Mal. Beispielsweise entspricht 'o{1,3}' den ersten drei "o" in "Booooot". 'o{0,1}' ist äquivalent zu 'o?'. Beachten Sie, dass zwischen dem Komma und den Zahlen kein Leerzeichen stehen darf.
? Wenn dieses Zeichen unmittelbar auf einen der anderen Quantifizierer folgt (*, +, ?, {n}, {n,}, {n,m}), so ist die Musterentsprechung nicht umfassend, also von kürzestmöglicher Übereinstimmung. Ein nicht umfassendes Muster entspricht möglichst wenig der durchsuchten Zeichenfolge, während das umfassende Standardmuster möglichst viel der durchsuchten Zeichenfolge entspricht. In der Zeichenfolge "oooo" entspricht beispielsweise 'o+?' einem einzigen "o", während 'o+' allen "o" entspricht.
. Entspricht allen einzelnen Zeichen außer "\n". Um nach einer Entsprechung für alle einzelnen Zeichen einschließlich des "\n" zu suchen, verwenden Sie beispielsweise das Muster '[.\n]'.
(?:Muster) Entspricht Muster, speichert die Entsprechung jedoch nicht, d. h., es handelt sich um eine nicht speichernde Entsprechung, die nicht für eine mögliche spätere Verwendung gespeichert wird. Dies ist von Nutzen, wenn Teile eines Musters mit dem "oder"-Zeichen (|) kombiniert werden sollen. So ist beispielsweise 'telefonier(?:t|en)' ein kürzerer Ausdruck als 'telefoniert|telefonieren'.
(?=Muster) Die positive Vorausschau entspricht der Suchzeichenfolge an allen Stellen, an denen eine Muster entsprechende Zeichenfolge beginnt. Dabei handelt es sich um eine nicht speichernde Entsprechung, d. h., die Entsprechung wird nicht für eine mögliche spätere Verwendung gespeichert. Beispielsweise entspricht 'Windows (?=95|98|NT|2000)' dem Wort "Windows" in "Windows 2000", jedoch nicht dem Wort "Windows" in "Windows 3.1". Vorausschauen verbrauchen keine Zeichen, d. h., nachdem eine Entsprechung gefunden wurde, beginnt die Suche nach der nächsten Entsprechung unmittelbar nach der letzten Entsprechung und nicht nach den Zeichen, aus denen die Vorausschau bestand.
(?!Muster) Die komplementäre Vorausschau entspricht der Suchzeichenfolge an allen Stellen, an denen eine Muster nicht entsprechende Zeichenfolge beginnt. Dabei handelt es sich um eine nicht speichernde Entsprechung, d. h., die Entsprechung wird nicht für eine mögliche spätere Verwendung gespeichert. Beispielsweise entspricht 'Windows (?!95|98|NT|2000)' dem Wort "Windows" in "Windows 3.1", jedoch nicht dem Wort "Windows" in "Windows 2000". Vorausschauen verbrauchen keine Zeichen, d. h., nachdem eine Entsprechung gefunden wurde, beginnt die Suche nach der nächsten Entsprechung unmittelbar nach der letzten Entsprechung und nicht nach den Zeichen, aus denen die Vorausschau bestand.
x|y Entspricht entweder x oder y. Beispielsweise entspricht 'sch|blau' entweder "sch" oder "blau". '(sch|b)lau' entspricht "schlau" oder "blau".
[xyz] Eine Menge von Zeichen. Entspricht allen enthaltenen Zeichen. Beispielsweise entspricht '[abc]' dem "a" in "fallen".
[^xyz] Eine Komplementmenge von Zeichen. Entspricht allen nicht enthaltenen Zeichen. Beispielsweise entspricht '[^abc]' dem "f" in "fallen".
[a-z] Ein Zeichenbereich. Entspricht allen Zeichen im angegebenen Bereich. Beispielsweise entspricht '[a-z]' allen Kleinbuchstaben im Bereich von "a" bis "z".
[^a-z] Ein Komplementbereich von Zeichen. Entspricht allen Zeichen, die im angegebenen Bereich nicht enthalten sind. Beispielsweise entspricht '[^a-z]' allen Zeichen, die nicht im Bereich von "a" bis "z" enthalten sind.
\b Entspricht einer Wortgrenze, d. h. der Position zwischen einem Wort und einem Leerzeichen. Beispielsweise entspricht 'er\b' dem "er" in "neuer", jedoch nicht dem "er" in "Verb".
\B Entspricht einer Nichtwortgrenze. 'er\B' entspricht dem "er" in "Verb", jedoch nicht dem "er" in "neuer".
\cx Entspricht dem Steuerzeichen, das durch x angegeben wird. Beispielsweise entspricht '\cM' einem STRG-M oder Wagenrücklaufzeichen. Der Wert von x muss im Bereich von A-Z oder a-z liegen. Ist dies nicht der Fall, wird c als "c"-Zeichenliteral interpretiert.
\d Entspricht einer Ziffer. Äquivalent zu '[0-9]'.
\D Entspricht einer Nichtziffer. Äquivalent zu '[^0-9]'.
\f Entspricht einem Seitenvorschubzeichen. Äquivalent zu '\x0c' und '\cL'.
\n Entspricht einem Zeilenumbruchzeichen. Äquivalent zu '\x0a' und '\cJ'.
\r Entspricht einem Wagenrücklaufzeichen. Äquivalent zu '\x0d' und '\cM'.
\s Entspricht beliebigen Leerräumen wie Leerzeichen, Tabstopp, Seitenvorschub usw. Äquivalent zu '[ \f\n\r\t\v]'.
\S Entspricht beliebigen Nichtleerräumen. Äquivalent zu '[^ \f\n\r\t\v]'.
\t Entspricht einem Tabstoppzeichen. Äquivalent zu '\x09' und '\cI'.
\v Entspricht einem vertikalen Tabstoppzeichen. Äquivalent zu '\x0b' und '\cK'.
\w Entspricht allen Wortzeichen einschließlich Unterstrich. Äquivalent zu '[A-Za-z0-9_]'.
\W Entspricht allen Nichtwortzeichen. Äquivalent zu '[^A-Za-z0-9_]'.
\xn Entspricht n, wobei n ein hexadezimaler Escapewert ist. Hexadezimale Escapewerte müssen genau zwei Stellen aufweisen. '\x41' entspricht beispielsweise "A". '\x041' ist äquivalent zu "\x04" & "1". Ermöglicht die Verwendung von ASCII-Codes in regulären Ausdrücken.
\num Entspricht num, wobei num eine positive Ganzzahl ist. Ein Rückverweis auf gespeicherte Entsprechungen. Beispielsweise entspricht '(.)\1' zwei aufeinander folgenden identischen Zeichen.
\n Bezeichnet entweder einen oktalen Escapewert oder einen Rückverweis. Wenn \n mindestens n gespeicherte Unterausdrücke vorausgehen, handelt es sich bei n um einen Rückverweis. Anderenfalls ist n ein oktaler Escapewert, wenn n eine Oktalziffer (0-7) ist.
\nm Bezeichnet entweder einen oktalen Escapewert oder einen Rückverweis. Wenn \nm mindestens nm gespeicherte Unterausdrücke vorausgehen, handelt es sich bei nm um einen Rückverweis. Wenn \nm mindestens n gespeicherte Ausdrücke vorausgehen, ist n ein Rückverweis, dem das Literal m folgt. Wenn keine der vorhergehenden Bedingungen zutrifft, entspricht \nm dem oktalen Escapewert nm, wenn n und m Oktalziffern (0-7) sind.
\nml Entspricht dem oktalen Escapewert nml, wenn n eine Oktalziffer (0-3) ist und m und l Oktalziffern (0-7) sind.
\un Entspricht n, wobei n ein Unicodezeichen ist, das mit vier Hexadezimalziffern ausgedrückt wird. Beispielsweise entspricht '\u00A9' dem Copyrightsymbol (©).

Weitere Beispiele und Informationen über reguläre Ausdrücke finden sich im Internet über Google.

Buchempfehlung: Reguläre Ausdrücke 2.Auflage von Jeffrey E. F. Friedl

SDW Software • Internet and Desktop Applications
Gattikonerstrasse 7a • 8136 Gattikon • Switzerland
kem@sitedesign.chwww.sitedesign.ch