Innerhalb von Befehlen werden zum Teil Reguläre Ausdrücke (regular expressions) verwendet, welche der Perl Syntax entsprechen müssen. Meist werden Reguläre Ausdrücke als Such-Zeichenketten (search strings) verwendet. Jedoch ist auch das Ersetzen von Ausdrücken möglich.
Zahlreiche Erklärungen und Beispiele hierzu sind im Internet zu finden, beispielsweise unter
http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck
https://wiki.selfhtml.org/wiki/Regul%C3%A4rer_Ausdruck
Hinweis: Folgende Zeichen haben bei Regulären Ausdrücken eine Sonderfunktion: . ^ $ * + ? ( ) [ ] { } < > \ | Sollen diese als „normale“ Zeichen verwendet werden, so müssen sie durch Voranstellen eines \ markiert (escaped) werden (siehe folgende Tabelle). |
Auflistung von Zeichen mit Sonderfunktion und Ihre Wirkung
Zeichen |
Wirkung / Einsatz |
|||
---|---|---|---|---|
beliebig |
steht für das Zeichen, falls nicht anders angegeben. |
|||
. |
steht für ein beliebiges einzelnes Zeichen außer einem Zeilen- oder einem Absatzumbruch. Beispielsweise liefert der Suchbegriff „Schmi.t“ liefert sowohl „Schmitt“ als auch „Schmidt“. |
|||
^ |
findet den Suchbegriff nur, wenn er am Absatzanfang steht. Sonderinhalte wie zum Beispiel Leerfelder und an Zeichen verankerte Rahmen am Absatzanfang werden ignoriert. Beispiel „^Peter“. |
|||
^. |
findet das erste Zeichen eines Absatzes. |
|||
$ |
findet den Suchbegriff nur, wenn er am Absatzende steht. Sonderinhalte wie zum Beispiel Leerfelder und an Zeichen verankerte Rahmen am Absatzende werden ignoriert. Beispiel „Peter$“. |
|||
allein stimmt mit dem Ende eines Absatzes überein. So ist es möglich, Absatzumbrüche zu suchen und zu ersetzen. |
||||
^$ |
findet einen leeren Absatz. |
|||
* |
findet keines oder mehr der Zeichen vor dem „*“. So liefert etwa der Suchbegriff „Ab*c“ die Einträge „Ac“, „Abc“, „Abbc“, „Abbbc“ und so weiter. |
|||
+ |
findet ein oder mehr der Zeichen vor dem „+“. Beispielsweise findet „AX.+4“ zwar „AXx4“, jedoch nicht „AX4“. Es wird immer die längst mögliche Zeichenfolge gefunden, die dem Suchmuster in einem Absatz entspricht. Wenn der Absatz die Zeichenfolge „AX 4 AX4“ enthält, wird der gesamte Ausdruck hervorgehoben. |
|||
? |
findet keines oder eines der Zeichen vor dem „?“. Beispielsweise findet „Texts?“ „Text“ und „Texts“ und „x(ab|c)?y“ findet „xy“, „xaby“ oder „xcy“. |
|||
\ |
die Suchfunktion interpretiert das Sonderzeichen nach dem „\“ als ein normales Zeichen und nicht als einen regulären Ausdruck (außer bei den Kombinationen \n, \t, \> und \<). Beispielsweise wird bei der Suche nach „kein\.“ zwar „kein.“ gefunden, jedoch nicht „keine“ oder „keins“. |
|||
\n |
steht im Feld „Suchen nach“ für einen mit Umschalt+Eingabetaste eingefügten Zeilenumbruch. Im Feld „Ersetzen durch“ steht \n für einen Absatzumbruch. So werden Zeilenumbrüche jeweils gegen Absatzumbrüche ausgetauscht, indem \n jeweils in die Felder „Suchen nach“ und „Ersetzen durch“ eingeben wird. |
|||
\s |
steht für ein Leerzeichen. Dieser Ausdruck kann auch im Feld „Ersetzen durch“ verwendet werden. |
|||
\t |
steht für ein Tabulatorzeichen. Dieser Ausdruck kann auch im Feld „Ersetzen durch“ verwendet werden. |
|||
\b |
findet eine Wortgrenze. Zum Beispiel findet „\bbuch“ das Wort „Buchstabe“ aber nicht „Textbuch“, wohingegen „buch\b“ das Wort „Textbuch“ findet aber nicht „Buchstabe“. |
|||
& oder $0 |
fügt die Zeichenfolge, die durch die Suchkriterien im Feld „Suchen nach“ gefunden wurde, zu dem Begriff im Feld „Ersetzen durch“ hinzu. Wird in „Suchen nach“ beispielsweise „Fenster“ und in „Ersetzen durch“ „&rahmen“ eingeben, so wird das Wort „Fenster“ durch „Fensterrahmen“ ersetzt. Weiterhin können mit dem Ausdruck „&“ im Feld „Ersetzen durch“ die Attribute oder das Format des durch die Suchkriterien gefundenen Suchbegriffs geändert werden. |
|||
[abc123] |
steht für eines der Zeichen in der Klammer. |
|||
[a-e] |
steht für irgendein Zeichen zwischen a und e, einschließlich beider Start- und Endzeichen. Die Zeichen werden anhand ihrer Kennziffer angeordnet. |
|||
[a-eh-x] |
steht für ein beliebiges Zeichen im Buchstabenbereich a-e und h-x. |
|||
[^a-s] |
repräsentiert alles, was nicht zwischen a und s ist. |
|||
\uXXXX |
steht für ein Zeichen auf Grundlage seines vierstelligen Hexadezimal-Unicodes (XXXX). |
Der Code einiger Zeichen hängt von der jeweiligen Schrift ab |
||
\UXXXXXXXX |
für unbedeutende Zeichen mit achtstelligem Hexadezimal-Unicode (XXXXXXXX). |
|||
| |
findet sowohl Begriffe, welche vor dem „|“ vorkommen, als auch die, die nach dem „|“ auftauchen. „dies|das“ findet „dies“ und „das“. |
|||
{2} |
gibt an, wie oft das Zeichen vor der öffnenden Klammer vorkommen muss. Zum Beispiel liefert der Suchbegriff „Man{2}“ das Wort „Mann“. |
|||
{1,2} |
gibt sowohl die minimale als auch maximale Anzahl an, die das Zeichen in vor der sich öffnenden Klammer vorkommen kann. „Man{1,2}“ findet und wählt sowohl „Man„ als auch „Mann“. |
|||
{1,} |
gibt an, wie oft das Zeichen vor der öffnenden Klammer im Wort mindestens vorkommen muss. Beispiel: Der Suchbegriff „Man{2,}“ findet „Mann“, „Mannn“ und „Mannnn“. |
|||
( ) |
im Feld „Suchen nach“: Die in der Klammer enthaltenen Zeichen gelten als Referenz. Auf die erste Referenz im aktuellen Ausdruck kann dann mit „\1“, auf die zweite mit „\2“ und so weiter. Bezug genommen werden. Enthält ein Text zum Beispiel die Zahl 13487889, so würde eine Suche mit dem Ausdruck (8)7\1\1, „8788“ finden. Ebenso kann durch () Suchtext gruppiert werden. Der Suchtext „a(bc)?d“ findet somit „ad“ oder „abcd“. |
|||
|
Im Feld „Ersetzen durch“: Um Referenzen zu ersetzen, wird statt \ (umgekehrter Schrägstrich) $ (Dollar) verwendet. Um die gesamte gefundene Zeichenkette zu ersetzen, wird $0 verwendet. |
|||
[:alpha:]? |
Steht für ein alphabetisches Zeichen. Verwenden Sie [:alpha:]+, um eines zu finden. |
|||
[:digit:]? |
Steht für eine Dezimalziffer. Verwenden Sie [:digit:]+, um eine Ziffer zu finden. |
|||
[:alnum:]? |
Steht für ein alphanumerisches Zeichen ([:alpha:] und [:digit:]). |
|||
[:space:]? |
Steht für ein Leerzeichen (aber kein anderes Platzhalter-Zeichen). |
|||
[:print:]? |
Steht für ein druckbares Zeichen. |
|||
[:cntrl:]? |
Steht für ein nicht-druckbares Zeichen. |
|||
[:lower:]? |
Steht für einen Kleinbuchstaben, wenn Groß-/Kleinschreibung in den Optionen ausgewählt ist. |
|||
[:upper:]? |
Steht für einen Großbuchstaben, wenn Groß-/Kleinschreibung in den Optionen ausgewählt ist. |
Quelle: Wikipedia
Beispiele
max\.mustermann@test\.tld
steht für die E-Mail Adresse max.mustermann@test.tld
@test\.tld
steht für alle E-Mail Adressen aus der Domäne test.tld
@test\..+
steht für alle E-Mail Adressen aus den Domäne test.*, also zum Beispiel test.ch, test.com, test.local aber auch test.local.de und so weiter.
@test\..{3,4}$
steht für alle E-Mail Adressen aus den Domäne test.* mit zwei oder dreistelliger Länderdomäne, also zum Beispiel test.ch, test.com, nicht aber test.a oder test.abcd und so weiter.
@.*\.test\.tld
steht für alle E-Mail Adressen aus der Domäne test.tld und deren Sub-Domänen, also auch ch.test.tld, de.test.tld local.test.tld und so weiter.
(@.*)(\.waste\.tld$)
In diesem komplexeren Beispiel wird jede E-Mail Adresse gefunden, welche auf .waste.tld endet. Das $ Zeichen am Ende des Ausdrucks bedeutet, dass in der untersuchten E-Mail Adresse nach .waste.tld keine weiteren Zeichen folgen dürfen. Der komplette Teil der E-Mail Adresse, welcher sich vor der Endung .waste.tld befindet, wird durch den Ausdruck @.* definiert.
Durch den Einschluss in Klammern werden die einzelnen Ausdrücke abgegrenzt. Somit können die eingeklammerten Teile durch Variablen abgerufen werden. Im Beispiel könnte somit als alles was in (@.*) steht, mit der Variable $1 wieder abgerufen werden.
Im konkreten Beispiel würde durch Verwenden von $1 von allen E-Mail Adressen, welche auf .waste.tld enden, eben dieses abgeschnitten.
Somit würde stünde dann in Variable $1 beispielsweise bei der ursprünglich eingelesenen Adresse „test@customer.tld.waste.tld“ „test@customer.tld“.
\[confidential\]|\<crypt\>
reagiert sowohl auf den Ausdruck [confidential] als auch <crypt> (ODER-Verknüpfung). Damit wird zum Beispiel das Verwenden mehrerer Schlüsselwörter für das Verschlüsseln ermöglicht.
(?i)max\.mustermann
durch (?i) wird im Ausdruck max\.mustermann nicht zwischen Groß- und Kleinschreibung unterschieden.