| Funduc
Software Search and Replace für Windows - Reguläre Ausdrücke |
| English |
| Reguläre Ausdrücke können für erweiterte Suchen verwendet werden, in welcher die Such-Zeichenfolgen durch eine Regel beschrieben werden können, daher nicht immer exakt gleich sein müssen. Reguläre Ausdrücke benutzen Sonderzeichen als Operatoren, die die Suche und "den Ausdruck" bestimmen, welcher eine Kombination aus Zeichen und Operatoren ist, die ein Schema definieren. Reguläre Ausdrücke können in Ersetzungen benutzt werden, und sie können Gebrauch von Binärzeichen machen . Beachten Sie bitte, daß Unterschiede bestehen zwischen den Operatoren für reguläre Ausdrücke in Such-Zeichenfolgen und ihren Gegenstücken in Ersetzungs-Zeichenfolgen. Search & Replace für Windows verwendet reguläre Ausdrücke, deren Basis die
UNIX grep Notation (Such-Utility) und die Eingabeparameter-Notation von DOS-Stapeldateien
sind, mit einigen Erweiterungen für Ersetzungen. Darüber hinaus werden ebenfalls
Groß/Klein-Flags und Binär-Zeichenfolgen in Verbindung mit regulären Ausdrücken
unterstützt. Die Hauptunterschiede zwischen den regulären Ausdrücken von Search &
Replace und egrep sind: 1) . Operator wird nicht unterstützt 2) *+?!
Operatoren müssen einem durch () oder [] eingeschlossenen Ausdruck (etwa wie *[123] oder
+(Windows)) vorangestellt sein. Anderenfalls wird angenommen, daß der Operator auf
alle Zeichen vom Zeilenanfang, oder bis zum Zeilenende angewendet werden soll. |
| Such-/Kongruenz-Operatoren in regulären Ausdrücken | |
| * | In Verbindung mit keinem oder mehreren
Ausdrücken durch () eingeschlossen, kann auch als Normalzeichen verwendet werden (siehe
unten). Dieser Operator ist zum Gebrauch mit Zeichenfolgen gedacht. Die Eingabe von
mehreren Ausdrücken nacheinander, die * enthalten, sollte mit Vorsicht vorgenommen
werden, um eine Überlappung von Zeichenfolgen zu vermeiden, was zu unvorhersehbaren
Ergebnissen führen könnte. Es kann eine Liste von Zeichen angegeben werden, die eine
Übereinstimmung erzeugen sollen (Windows *[0-9] gibt als Übereinstimmung auch
"Windows 95" aus). Zum Beispiel ergibt
Dieser Operator kann ebenso zur Suche von Zeichenfolgen zwischen zwei Zeichen benutzt werden, z.B. ergibt
Hinweis: Wird der * Operator an den Anfang einer Zeile gesetzt, werden Übereinstimmungen zu allen Zeichen vom Beginn der Zeile gesucht, und an das Ende gesetzt, zu allen Zeichen bis zum Zeilenende. Übereinstimmungen zu Zeichen zwischen zwei oder mehreren Zeichenfolgen bis zu einer Gesamtlänge von 4096 Zeichen (4K) können gefunden werden, indem hinter dem * Operator ein Bereich angegeben wird. Zum Beispiel ergibt
Hinweis: Wird * mit einem Zahlenbereich und den Zählern %n> oder %n>Startwert> kombiniert, wäre der obige Suchausdruck Windows*[0-9] Teil einer Zähler-Operation in regulären AusdrückenCOUNTERS. |
| + | Einer oder mehrere Ausdrücke eingeschlossen
durch ().
|
| ? | Genau ein Ausdruck oder irgendein Zeichen,
eingeschlossen durch ().
Dieser Operator kann ebenso zur Suche von irgendeinem Zeichen zwischen zwei Zeichenfolgen, oder vor bzw. hinter einer Zeichenfolge benutzt werden. Dies ist die hauptsächliche Anwendung dieses Operators. Beispielsweise werden mit
Hinweis: Bei alleinigem Gebrauch des ? -Operators werden alle Zeichen einer Datei nacheinander als Treffer ausgegeben, dies sollte daher vermieden werden. |
| ! | Gefundene Zeichenfolgen innerhalb des
angegebenen Bereiches werden nicht ausgegeben, jedoch außerhalb liegende. Beispielsweise
ergibt
Ein anderer Zweck wäre, eine Zeichenfolge zu suchen, die den angegebenen Ausdruck nicht enthält, z.B.
|
| ^ | Ein Ausdruck, der am Zeilenanfang steht, z.B.
|
| $ | Ein Ausdruck, der am Zeilenende steht, z.B.
|
Top | Search & Replace Features | Search & Replace
| Suche mit regulären Ausdrücken - Operatoren für Unterausdrücke | |
| [ ] | Falls alleine eingegeben, werden alle Zeichen
berücksichtigt, dies ist gleichbedeutend mit ?[]. Falls mit dem * -Operator
kombiniert, kann sich die Übereinstimmung über die unter "Maximale Größe
regulärer Ausdrücke" eingetragene Länge über mehrere Zeilen hinweg erstrecken.
Alternativ kann auch nach einem oder mehreren Zeichen gesucht werden, die in die Klammern
eingetragen werden. Bereichsangaben sind über die Schreibweise "a-z" möglich.
Der [] -Operator kann hinter den ?* + Operatoren verwendet werden, um den Geltungsbereich
dieser Operatoren einzuschränken. Beispielsweise werden mit
Hinweis: Es kann auch beispielsweise [a-zA-Z0-9\-_] eingegeben werden, also mehrere Bereiche und das - Zeichen selbst (mit vorangestelltem \ ). Hinweis: Falls [] mit einem Zahlenbereich, dem * Operator (also z.B. *[0-9]) und den Zählern %n> oder %n>Startwert> kombiniert wird, wäre ein Suchausdruck wie Windows *[0-9] Teil einer Zähler-Operation in regulären Ausdrücken. |
| ( ) | Gibt einen oder mehrere Unterausdrücke an.
Ausdrücke, die zur Wahl stehen, können durch den | Operator angegeben werden.
Beispielsweise ergibt
|
| +n | Gibt die übereinstimmende Zeichenzahl vor
oder hinter einem Ausdruck an. Verwendung in Verbindung mit anderen
Unterausdruck-Operatoren. Es kann ein Bereich angegeben werden, z.B. ergibt
|
Top | Search & Replace Features | Search & Replace
| Suche mit regulären Ausdrücken - Besondere Zeichen | |
| - + * ? ( ) [ ] \ | $ ^ ! | Falls nach einem dieser Zeichen gesucht werden soll, müssen diese das \ -Zeichen vorangestellt bekommen, um als normale Zeichen innerhalb einer Suche interpretiert zu werden. |
Top | Search & Replace Features | Search & Replace
| Komplexe Suche mit regulären
Ausdrücken Die oben erwähnten Operatoren können kombiniert werden, um folgende Suchen zu erzeugen: |
|
| ?include (<|\[)[a-z0-9_].h*(p)+[\]>] | Ergibt: #include [stdafx.h] #include <dos.h> #include [my_include.hpp] #include [sr32.h] etc. |
Top | Search & Replace Features | Search & Replace
| Ersetzungs-Operatoren in regulären Ausdrücken | ||||||||
| %n | %1 verwendet den ersten Ausdruck in der Such-Zeichenfolge. Falls beispielsweise als Vorgabe | |||||||
|
?include (<|\[)[a-z0-9_].h*(p)+[\]>] | |||||||
|
%1exclude [%3>.H%4>] | |||||||
| Könnte das Ergebnis sein: | ||||||||
|
=> | #exclude [STDAFX.H] | ||||||
|
=> | #exclude [DOS.H] | ||||||
|
=> | #exclude [MY_INCLUDE.HPP] | ||||||
|
=> | #exclude [SR32.H] | ||||||
Bitte im Beispiel beachten:
Diese Parameter können in jeder beliebigen Reihenfolge diverse Male benutzt oder ausgelassen werden. |
||||||||
| < | Kleinschreibung erzwingen. In Verbindung mit %n verwendet: %1< ersetzt den ersten Treffer durch sein klein geschriebenes Äquivalent. | |||||||
| > | Großschreibung erzwingen. In Verbindung mit %n verwendet: %1> ersetzt den ersten Treffer durch sein groß geschriebenes Äquivalent. | |||||||
| %n> | ZählerCOUNTERS. Falls in Verbindung mit einer Suche mit regulären Ausdrücken und Zahlen verwendet (z.B. *[0-9]), erhöht %n> den ersten mit *[0-9] gefundenen Wert um +1. Beispiel: | |||||||
Gegeben: |
seite5.htm, seite2.htm, seite4.htm | |||||||
Suchausdruck: |
seite*[0-9] | |||||||
Ersetzungsausdruck: |
seite%n> | |||||||
Das Ergebnis wäre: |
seite6.htm, seite7.htm, seite8.htm | |||||||
| %n>#> | Zähler. Dieser Platzhalter ermöglicht die Angabe eines Startwertes, ab welchem der Ersetzungszähler erhöhen soll. %n>Startwert> erhöht den gegebenen Startwert um +1. Dieser Zähler berücksichtigt außerdem die gegebene Ziffernzahl. Um mit einem Startwert 1 zu beginnen, muß der Ausdruck %n>0> lauten. Der Ausdruck %n>000> würde Ersetzungen mit dem Startwert 001 beginnen. Ein weiteres Beispiel: | |||||||
Gegeben: |
Var19, Var82, Var8 | |||||||
Suchausdruck: |
Var*[0-9] | |||||||
Ersetzungsausdruck: |
Var%n>99> | |||||||
Das Ergebnis wäre: |
Var100, Var101, Var102 | |||||||
Top | Search & Replace Features | Search & Replace
| Ersetzungen mit regulären Ausdrücken - Besondere Zeichen (Literale) | |
| % \ < > | Falls eines dieser Zeichen ersetzt werden soll, muß ihnen das \ -Zeichen vorangestellt werden, um als normale Zeichen innerhalb einer Ersetzung interpretiert zu werden. |
Top | Search & Replace Features | Search & Replace
Einige Grundbeispiele für Suchen mit regulären Ausdrücken |
||||
| Gesucht | Operator | Beispiele | ||
| Jedes Einzelzeichen | ? |
g?t findet get, got, gut | ||
| Jede Zeichenfolge (eine oder mehrere) | + |
w+e findet wide, white, write, aber nicht we | ||
| Jede Zeichenfolge (oder keine) | * |
w*e findet wide, white, write und we | ||
| Eines der angegebenen Zeichen | [] |
g[eo]t findet get und got aber nicht gut | ||
| Eines der Zeichen im Bereich | [-] |
[b-p]at findet bat, cat, fat, hat, mat aber nicht rat oder sat | ||
| Alle Zeichen | [] |
i[] findet line, list, late. [] verwenden, statt einer komplizierten Bereichsangabe wie [a-zA-Z0-9] | ||
| Ein Ausdruck oder ein anderer | (|) |
W(in|indows) findet Win oder Windows | ||
| Einer oder mehrere Ausdrücke | +() |
+(at) findet atat in catatonic und at in battle | ||
| Alle Zeichen (evtl. in verschiedenen Zeilen) | *[] |
h[]d findet "helped", "Hello World", und "Hello (cr lf) Win95 World". [] [] verwenden, statt einer komplizierten Bereichsangabe wie [a-zA-Z0-9]. Hierdurch erstreckt sich die Suche über mehrere Zeilen bis zur Grenze, die durch Maximale Größe regulärer Ausdrücke gesetzt ist. | ||
| Zwei "nahe" Zeichenfolgen (evtl. in verschiedenen Zeilen) | *[] |
the*[\0-ÿ]first findet
"the first" und "the (cr lf) very first Hinweis: Siehe oben 'Alle Zeichen' (*[]). Dieses Beispiel benutzt eine ältere Syntax. Sonderzeichen werden über den Binärmodus -Dialog eingegeben (Knopf neben den Such- und Ersetzungs-Zeichenfolgen). |
||
| Eine Zeichenfolge, die nicht mit einem Ausdruck beginnt | !() |
!(http): findet "following:" aber nicht "http://www.funduc.com" | ||
| Eines der Zeichen außerhalb des Bereiches | ![-] |
[b-p]at findet bat, cat, fat, hat, mat aber nicht rat oder sat | ||
| Ein Ausdruck am Zeilenanfang | ^ |
^the findet the am Zeilenanfang und The, falls Groß/Klein deaktiviert ist. | ||
| Ein Ausdruck am Zeilenende | $ |
end$ findet end , falls es die letzte Zeichenfolge der Zeile ist. | ||
| Eine oder mehrere Spalten vor oder hinter einer Zeichenfolge | +n |
[h]+4// findet http:// aber nicht https:// | ||
Top | Search & Replace Features | Search & Replace
Zusätzliche Suchbeispiele mit regulären Ausdrücken |
|
| Suchstring | Übereinstimmung mit |
| L[] | line, list, lane, LogVar1 (falls Groß/Klein deaktiviert) |
| [on] | non, no, on |
| \[ | [ |
| +[a-z] | abcdefghijklomopqrstuvwxyz Hinweis: Falls Groß/Klein deaktiviert, wird ebenfalls ABCDEFGHIJKLMNOPQRSTUVWXYZ gefunden |
| [a-zAZÀ-ÿ] | findet das Gleiche wie das obige Beispiel (unabhängig von Groß/Klein) und ebenfalls alle anderen Sonderzeichen Westeuropäischer Sprachen. Siehe BinärmodusHIDD_BINARY -Dialog zwecks Reihenfolge dieser Zeichen in der ASCII-Tabelle. |
| +(one|two|three) | one, onetwo, twothree |
| ?(one|two|three) | one,two,three |
| Windows*[\0-ÿ]95 | Findet bis zu 4096 Zeichen (in verschiedenen Zeilen) zwischen Windows und 95. |
| All * replaces | all the replaces (das * -Zeichen findet alle Zeichen in der gleichen Zeile, sofern ein [] Ausdruck dies nicht ausschließt - siehe oben) |
| /**[\0-ÿ]*/ | findet Kommentare innerhalb verschiedener Zeilen wie in C verwendet (bis zu 4069 Zeichen). |
| 01*[0-9].htm | 01346.htm, 01.htm, 016965.htm |
| *[ab]c | c, abc, bac, abbc, bbac |
Top | Search & Replace Features | Search & Replace
Such-/Ersetzungsbeispiele mit regulären Ausdrücken |
||
| Suchstring | Ersetzung | Auswirkung |
| *.* | %1>.%2> | c:\windows\win.ini => C:\WINDOWS\WIN.INI |
| +[a-z] | %1> | Windows => WINDOWS |
| 7*.htm | 5%1.htm | 711.htm => 511.htm 7days.htm => 5days.htm |
| [253]7[832].htm | %15%2.htm | 3572.htm => 3552.htm |
| *[253]7[832].htm | %15%2.htm | 72.htm => 52.htm |
| (homepage|index).htm | %11.htm | homepage.htm => homepage1.htm index.htm => index1.htm |
| +(12)[0-9] | %1%2a | 12532 => 12532a 1212753 => 1212753a |
| ???*(d|m).htm | %1%2%3d1.htm | card.htm => card1.htm form.htm => form1.htm |
| back2.jpg*[]height="30" | back2.jpg%1height="32" | Eine Suche/Ersetzung über mehrere Zeilen, die
die Größenangabe für 'back2.jpg' ändert, unabhängig von unterschiedlichen 'alt'
-Texten oder wie der Html-Editor den Code umbricht, z.B.: src="images/back2.jpg"
alt="Go Back" wird zu: src="images/back2.jpg" alt="Go Back" |
| ?(Windows) | OS/2 | Windows => OS/2 (kleines Spässle ;o) |
Top | Search & Replace Features | Search & Replace
Search & Replace -Zähler in regulären Ausdrücken
Zähler-Operationen in Suchen/Ersetzungen mit regulären Ausdrücken ermöglichen schnelle Änderungen an aufeinander folgenden Ziffern in einer oder mehreren Dateien vorzunehmen. Es können auch aufeinander folgende Zahlen in Textstrings eingefügt werden, in denen sie ursprünglich nicht auftraten. Zähleroperationen verwenden den regulären Ausdruck *[0-9] und entweder den Ersetzungs-Platzhalter %n> oder %n>anwenderspezifischer Startwert>.
Der Ersetzungs-Platzhalter %n> erhöht den durch *[0-9] gefundenen Wert um +1 (z.B.*[0-9]+1). Falls beispielsweise der durch *[0-9] gefundene Wert 10 ist, beginnt %n> mit 11.
Der Ersetzungs-Platzhalter %n>anwenderspezifischer Startwert> erhöht jeweils um +1 beginnend mit dem durch den Anwender vorgegebenen [Startwert +1]. Dieser Zähler berücksichtigt ebenfalls die angegebene Ziffernanzahl. Beispielsweise beginnt der Ausdruck %1>1> mit dem Wert 2. Der Ausdruck %1>000> würde mit 001 beginnen.
Zähleroperationen können mit anderen regulären Ausdrücken und Search & Replace Operatoren kombiniert werden. Beispielsweise ist ein Suchausdruck wie (Datei|Variable)*[0-9] und ein Ersetzungs-Platzhalter wie %1%2>100> vollkommen korrekt.
Beispiele von Zählern in regulären Ausdrücken |
|
Originalinhalt: |
Windows 98 wird in 5 Tagen erscheinen. *[0-9] %1> Windows 99 wird in 100 Tagen erscheinen. |
Originalinhalt: |
file.htm, file.htm, ffillee.htm e*[0-9].htm e%1>.htm file2.htm, file3.htm, ffillee4.htm |
Originalinhalt: |
Var22 Var20 Var86 Var30 Var*[0-9] Var%1>49> Var50 Var51 Var52 Var53 |
Originalinhalt: |
Var22 Var20 Var86 Var30 Var*[0-9] Var%1>00> Var01 Var02 Var03 Var04 |
Originalinhalt: |
VarA101 VarB12 VarC0 VarA102 VarB45 Var[a-z]*[0-9] Var%1%2>08> VarA09 VarB10 VarC11 VarA12 VarB13 |
![]()
| © 1995-2010 Funduc Software. Alle Rechte vorbehalten. http://www.funduc.com/regexpd.htm http://www.searchandreplace.com/regexpd.htm Senden Sie Kommentare an webmaster@searchandreplace.com |