Haben Sie schon einmal versucht, in einem Text alle Anführungszeichen zu finden, um diese dann durch Anführungszeichen und Abführungszeichen zu ersetzen? Dafür scheint es partout keine Lösung zu geben. Denn wie auch immer Sie es auch drehen, die erweiterten Suchfunktionen helfen Ihnen nicht weiter, wenn es darum geht, die Stellung des Zeichens zu ermitteln. So müssten Sie also jede Fundstelle manuell kontrollieren. Reichlich kompliziert wird auch das Umstellen von Bestandteilen eines Dateinamens. Wenn die Länge der Einzelteile variabel ist, gibt es für die klassische Suche keinen Anhaltspunkt, anhand dessen über die Aufteilung entschieden werden kann. Mit einer Art von Metasprache, mit der Bestandteile von Texten und Begriffen charakterisiert werden können, lösen Sie die Herausforderungen.
Komplizierter Problemlöser
In einigen Programmen finden Sie etwas versteckt in den Optionen für die erweiterte Suche einen Schalter, der mit „RegEx“ oder „regulärer Ausdruck“ beschriftet ist. Hinter diesem etwas spröden Namen verbergen sich selbst bestimmte Zeichen, die aufgrund von Regeln zusammengestellt werden und damit die Suche nach anderen Zeichen ermöglichen. Reguläre Ausdrücke sind so etwas wie eine spezielle Sprache, die eigenen Regeln folgt und damit die Suche nach beliebigen Zeichenfolgen ermöglicht. Die verschiedenen Regeln unterscheiden sich oft je nach eingesetzter Software. Wer sich aber mit den grundlegenden Verfahren vertraut gemacht hat, werden Sie sich stets schnell zurechtfinden.
Programmierer greifen etwas sehr häufig zu regulären Ausdrücken. Müssen die Eingaben eines Anwenders in einem Formular überprüft werden (hat er alle Ziffern einer Postleitzahl angegeben? Sind in einem Feld nur Zahlen verwendet worden? Ist in der Mailadresse auch das At-Zeichen enthalten?), sind reguläre Ausdrücke das Mittel, um die Eingabe unerlaubter Zeichen zu verhindern. Ein mächtiges Werkzeug also.
Zur besseren Übersicht an dieser Stelle eine kurze Übersicht der wichtigsten Zeichen in regulären Ausdrücken:
^ Beginn einer Zeichenkette.
$ Ende einer Zeichenkette
. Jedes beliebige Zeichen
[ Anfang einer Zeichendefinition
] Ende der Definition
( Beginn eines Suchausdrucks.
) Ende eines Suchausdrucks.
{ Beginn Anzahl-definition.
} Ende einer Anzahl.
| Das „Oder“ zwischen zwei Ausdrücken.
\ Ein Zeichen maskieren, damit danach gesucht werden kann.
* Das vorangegangene Zeichen tritt kein oder mehrmals auf.
? Das vorangegangene Zeichen tritt keinmal oder einmal auf.
+ Das vorangegangene Zeichen tritt einmal oder mehrmals auf.
Namensbestandteile umstellen
In regulären Ausdrücken sind einigen Zeichen bestimmte Bedeutungen vorbehalten. Durch deren Reihenfolge und das Gruppieren werden daraus dann die Suchbegriffe, die auf Texte angewendet werden. Der Punkt (.) steht in regulären Ausdrücken für ein beliebiges Zeichen. Über einen weiteren Parameter legen Sie fest, wie oft ein vorher genanntes Zeichen vorkommen darf. Die Beispiele auf den nachfolgenden Seiten wurden mit dem Writer aus dem LibreOffice-Paket angelegt. Sie können aber auch jede andere Software verwenden, die reguläre Ausdrücken einsetzen kann.
Ein erstes Beispiel: Sie erhalten einen Text, der eine Namensliste in der Form „Vorname, Nachname“ enthält. Gefordert ist allerdings das Muster „Nachname, Vorname“. Rufen Sie im Writer zunächst das Werkzeug „Suchen und Ersetzen“ auf. Nachdem Sie den Dialog geöffnet haben, müssen Sie unter „Weitere Optionen“ das Feld „Regulärer Ausdruck“ aktivieren. So oder ähnlich funktioniert dies auch in anderen Anwendungen. Suchen Sie dort gezielt nach Kommandos wie „RegEx“, „Mustervergleich“ oder eben „reguläre Ausdrücke“.
In diesem konkreten Beispiel suchen Sie nach beliebig vielen Zeichen vor einem Komma. Diesem Komma folgt ein Leerzeichen, darauf dann erneut eine beliebige Anzahl von beliebigen Zeichen. Daraus ergibt sich folgender regulärer Ausdruck: (.*), (.*)
Das Sternchen bedeutet, dass das vorangegangene Zeichen gar nicht und mehrfach auftreten darf. Das vorangegangene Zeichen ist der Punkt, der für ein beliebiges Zeichen steht. Dieser Ausdruck wird durch die Klammern gruppiert. Es folgt das Komma und das Leerzeichen, die jeweils für sich selbst stehen. Es schließt sich erneut der gleiche geklammerte Ausdruck an. Damit werden als Treffer jetzt alle Einträge der Liste gesehen. Bei der Suche ergeben sich Treffer, die dank der Gruppierung auch nummeriert werden. Und diese automatische Nummerierung ist der Schlüssel für den Vorgang des Ersetzens. In das Feld für das Ersetzen notieren Sie: $2, $1
Dies bedeutet, dass der zweite gefundene Ausdruck ausgegeben wird, danach folgen Komma, Leerzeichen und der erste gefundene Ausdruck. Damit haben Sie dann aber den Austausch in der Liste bereits umgesetzt. Übrigens wird in anderen Programmen statt des Dollarzeichens auch gern der Backslash verwendet.
Nur bestimmte Zeichen erlauben
Das Umstellen der Einträge in einer solchen Liste ist ein gutes Beispiel für eine sehr unscharfe Suchbedingung. Mehr als die Reihenfolge der Ausdrücke und die zwei Trennzeichen sind nicht bekannt. Im Alltag werden Sie es dagegen wohl eher mit strukturierten Daten zu tun haben. Wie könnten Sie zum Beispiel alle Artikelnummern in einem Text finden, um diese schnell zu bearbeiten? Das lässt sich abgewandelt auch auf Postleitzahlen übertragen. In diesem Beispiel sollen die Artikelnummern nach dem Muster „Großer Anfangsbuchstabe, Bindestrich und fünfstellige Zahlen“ aufgebaut sein. Ein passender Eintrag wäre also „A-12345“. Die fünf Ziffern sind stets variabel.
Bei der Zusammenstellung eines regulären Ausdrucks können Sie eine Zeichenmenge definieren, die in einem Treffer vorhanden sein müssen. Die erlaubten Zeichen tragen Sie in eckige Klammern ein. Sie werden unmittelbar hintereinander geschrieben, also nicht durch Kommas getrennt. Unterschieden wird allerdings nach Groß- und Kleinschreibung. In diesem Beispiel könnten alle Großbuchstaben in Betracht kommen. Es wäre viel zu aufwändig, alle in die Klammern einzutragen. Deswegen dürfen Sie auch Bereiche definieren. Das wäre in diesem Beispiel „[A-Z]“. Das gilt so auch für die Ziffern, die in der Bestellnummer vorkommen. Auch diese können als Bereich definiert werden, etwa : „[0-9]“.
Wie oft ein erlaubtes Zeichen in einem Treffer vorhanden sein darf, kann ebenfalls über einen Ausdruck definiert werden. Dazu setzen Sie in geschweifte Klammern entweder zwei Zahlen, die mit Komma getrennt werden. Die Werte stehen dann für die Mindestanzahl und den Maximalwert (z.B. { 1,4} ) oder Sie geben eine exakte Zahl an. Damit haben Sie alle Elemente beisammen, um den Ausdruck zu definieren: ([A-Z]{ 1} )-([0-9]{ 5} )
Sie suchen einen ersten Ausdruck, der aus den Großbuchstaben bestehen soll, die jeweils nur einmal vorkommen dürfen. Es folgt ein Bindestrich und danach ein zweiter Ausdruck, der aus den Ziffern besteht, die fünfmal vorkommen dürfen. Achtung: Wenn Sie in LibreOffice nach dem Ausdruck suchen, müssen Sie in den Optionen des Dialogs auch „Groß- und Kleinschreibung“ aktivieren, damit nicht etwa auch ein Kleinbuchstabe als Treffer gewertet wird.
Word aus dem Office-Paket von Microsoft beherrscht die Suche mit „Mustervergleich“. Die Syntax unterscheidet sich leicht von der in diesem Artikel. Texteditoren wie Textmate, SublimeText oder auch Textwrangler können ebenfalls damit umgehen. Ein sehr praktisches Programm, allerdings nicht ganz preiswert, ist Textsoap, das ebenfalls reguläre Ausdrücke kennt. Nicht genug gelobt werden kann das Online-Angebot RegExr. Hier klicken Sie direkt im Browser reguläre Ausdrücke zusammen und sehen in einer Livevorschau deren Wirkung. Und der App-Store zeigt Ihnen als Ergebnis der Suche nach „regular expressions“ eine ganze Reihe von Programmen, mit denen Sie auch umfangreiche Texte bearbeiten können. Wenn es um das Umbenennen von Dateien geht, könnten Sie zum Beispiel zu Renamer greifen, aber auch Finder-Alternativen wie Pathfinder unterstützen reguläre Ausdrücke, um auch spezielle Aufgabenstellungen zu bewältigen.
Suche nach einem bestimmten Zeichen
Während der Überarbeitungsphase an einem Text müssen oft Schreibweisen vereinheitlicht werden. Auch in diesem Fall gibt es meistens einen variablen und einen stets gleichen Anteil. Im nächsten Beispiel soll die Schreibweise des Wortes „Internetadresse“ zusammengeführt werden. Ob durch das Kopieren des Textes oder durch die Unachtsamkeit des Schreibers sind mehrere Varianten im Text zu finden. Diese wollen Sie auf den gleichen Stand bringen und dabei besonders den Bindestrich ersetzen.
Die Besonderheit in diesem Fall ist die Suche nach dem Bindestrich. Wie Sie gesehen habe, dient er in den regulären Ausdrücken auch als Trennzeichen, wenn Sie Bereiche von Zeichen angeben wollen. Damit die Suchfunktion den Bindestrich nicht als Kommando interpretiert, müssen Sie das Zeichen „maskieren“. Dazu setzen Sie unmittelbar einen Backslash voran. Das trifft so auf alle anderen Kommandozeichen zu. Der eigentliche Suchausdruck ist nicht schwer: Internet[aA\ -]+dresse
Sie suchen nach dem Wort Internet, dem eines oder mehrfach eines der Zeichen „a, A, -“ folgen. Die Fundstellen ersetzen Sie danach mit der richtigen Schreibweise.
Die Suche nach den Anführungszeichen
Sie haben in Ihrem Text die klassischen Anführungszeichen („) verwendet, müssen diese aber durch die eher im Buchdruck gebrauchten Paarungen, wie » und « ersetzen? Die einfache Suche nach dem Anführungszeichen bringt Sie nicht weiter, da die Suchfunktion nicht entscheiden kann, ob das Zeichen nun am Beginn eines Ausdrucks oder an dessen Ende steht. In den regulären Ausdrücken gibt es dafür aber das Zeichen „\ b“. Es steht für eine Wortgrenze. Eine solche Wortgrenze kann das Ende oder auch der Anfang eines Wortes sein. Mit seiner Hilfe lässt sich die Aufgabe erledigen. Sie suchen nach dem Anführungszeichen. Diesem folgt eine Wortgrenze (der Anfang eines Wortes), das aus einer beliebigen Zahl beliebiger Zeichen besteht. Das ergibt diesen Ausdruck: „(\ b.?) Die Suche nach dem Anführungszeichen am Ende sieht dann so aus: (.?\ b)“
Beim Ersetzen müssen Sie darauf achten, dass Sie auch die gefundenen Zeichen durch sich selbst ersetzen. Denn wenn Sie lediglich unter „Ersetzung“ das französische Anführungszeichen einsetzen, überschreiben Sie damit auch stets die ersten Zeichen Ihres gefundenen Ausdrucks.
Die Suche mit Wortgrenzen ist insgesamt praktisch. Kombinieren Sie Wortanfang und Wortende erhalten Sie das, was in den Suchfunktionen vieler Textverarbeitungen als „Nur ganze Wörter“ bezeichnet wird.
Die Einarbeitung in reguläre Ausdrücke erfordert etwas Zeit. Gar keine Frage. Wer aber häufiger in Texten nach Ausdrücken suchen und diese ersetzen muss oder aber regelmäßig größere Zahlen von Dateien umbenennen will, besitzt damit ein kraftvolles Werkzeug, mit dessen Hilfe sich alle Informationen aufspüren und bearbeiten lassen.
Diskutiere mit!
Hier kannst du den Artikel "Reguläre Ausdrücke: 5 geniale Tipps für eine erfolgreichere Suche und erweiterte Bearbeitungsfunktionen in Dateien" kommentieren. Melde dich einfach mit deinem maclife.de-Account an oder fülle die unten stehenden Felder aus.
Die Kommentare für diesen Artikel sind geschlossen.