RegEx


Mit den Abkürzungen RegEx und RegExp (engl.: regular expression) werden reguläre Ausdrücke bezeichnet, die in der theoretischen Informatik, Programmierung, Softwareentwicklung, Textverarbeitung und Suchmaschinenoptimierung verwendet werden. Mit regulären Ausdrücken lassen sich Zeichenketten (engl.: Strings) und Mengen von Zeichenketten in einer allgemeinen, logischen Form beschreiben, um sie in Dokumenten, Quellcodes oder Datenbanken zu suchen, zu ersetzen, zu manipulieren oder weiter zu verarbeiten.

Ein Beispiel: In einem regex-fähigen Texteditor sollen alle Links einer HTML-Datei angezeigt werden. Wird der Ausdruck <a href="[^"]*"[^>]*> in die Suchfunktion des Editors eingegeben, würden alle Links dargestellt werden, die das übliche Format für HTML-Links besitzen. Auch der Ausdruck <a href=".*?".*?> erledigt diese Aufgabe.[1]

Allgemeine Informationen zum Thema

Der Logiker und Mathematiker Stephen Kleene gilt als Begründer der RegEx. Er benutzte bereits 1956 eine Notation der regulären Mengen in einem Aufsatz über die Repräsentation von Ereignissen in neuronalen Netzen und endlichen Automaten. Diese und weitere Arbeiten sind heute Grundlagenwerke in der theoretischen Informatik. Reguläre Ausdrücke werden mittlerweile in verschiedenen Bereichen angewandt und vereinfachen Arbeitsschritte, die sonst sehr aufwendig und zeitintensiv wären.

RegEx können je nach Implementierung in mehreren Programmiersprachen, Umgebungen und Texteditoren eingesetzt werden. Zum Beispiel in Perl, PHP, .NET oder JavaScript als Elemente der jeweiligen Bibliothek.[2] Oder in EditPad, Emacs und Notepad++ als Such- und Ersetzungsfunktion bei Texteditoren. In Google Analytics sind reguläre Ausdrücke ebenfalls möglich, um Trafficquellen zu filtern, Segmente zu definieren und detaillierte Berichtsdaten von anderen Daten zu trennen.[3]

Funktionsweise

Die Einsatzmöglichkeiten von RegEx sind überaus vielfältig. Die möglichen regulären Ausdrücke sind dabei von der Notation abhängig. So gibt es verschiedene Schreibweisen in verschiedenen Programmiersprachen. Diese Notationen werden beispielsweise als Shell Namensmuster, BRE (Basic Regular Expressions) und ERE (Extended Regular Expressions) bezeichnet.[4] Die Unterschiede sind mitunter darauf zurückzuführen, dass einzelne Zeichen und vor allem Metazeichen (Steuerzeichen) in einer Programmiersprache bereits belegt sind.

Grundsätzlich wird zwischen (terminalen) Zeichen und Metazeichen unterscheiden. Die Zeichen sind im Zeichenvorrat, dem Alphabet festgehalten, das zum Beispiel Zahlen, Kommata und Buchstaben enthält. Die Metazeichen sind durch Operationen wie Alternation |, Verkettung () und [] sowie Wiederholung mit *, + und ? bestimmt. Mit ^ können Mengen negiert werden. Metazeichen sind gewissermaßen Anweisungen für die verarbeitende Software. Normale Zeichen können vor oder hinter den Metazeichen stehen – die formale Bedeutung ist dann jeweils eine andere. Die meisten Implementierungen arbeiten mit einer speziellen RegEx-Engine, die die notierten regulären Ausdrücke parst, interpretiert und eine Ressource auf deren Instanzen hin überprüft.

  • Normale Zeichen: Alle Ziffern von 0 bis 9. Alle Buchstaben eines Alphabets sowie einige Sonderzeichen (Kommata, Gedankenstriche, Semikolon). Wichtig: Das Alphabet ist abhängig vom verwendeten Zeichensatz (zum Beispiel Unicode oder ASCI).
  • Zeichenklassen: \d steht beispielsweise für eine Ziffer zwischen 1 und 9. Während \t alle Tabulatoren finden würde. Weitere Möglichkeiten sind \l für Kleinbuchstaben, \s für alle Leerzeichen oder \u für alle Großbuchstaben.
  • Metazeichen:
    [ ] ( ) { } | ? + - * ^ $ \ .
    Durch einen vorangestellten Backslash kann der Metacharakter eines Metazeichens aufgehoben werden.

Praxisbezug

Mit regulären Ausdrücken können unter anderem folgende Verfahren realisiert werden:

  • Pattern Matching: Mithilfe eines sogenannten String-Matching-Algorithmus werden Texte auf Vorkommen von Mustern überprüft. Ein regulärer Ausdruck steht hierbei für eine Menge von Zeichenketten, deren Vorkommnisse im Text abgeglichen werden. Der RegEx-Ausdruck gibt das Muster vor, die Engine prüft das Muster gegen eine Ressource (zum Beispiel ein HTML-Dokument oder ein Text). Unter Umständen kann eine Ersetzungsregel angegeben werden, um die gefundenen Zeichenketten direkt zu verändern. Auch Quantoren sind möglich, um die Ergebnisse einzugrenzen. Beispiele: Die Überprüfung einer eingegebenen Email-Adresse auf ihre formale Korrektheit oder die Suche nach Top Level Domains in einer Liste mit URLs.
  • Globbing: Dateinamen werden um Platzhalter ergänzt, um beispielsweise alle Dateien in einem bestimmten Format zu selektieren. Die Wildcard "Muster.*" würde in einem Dateiverwaltungssystem alle Dateien heraussuchen, die mit "Muster" anfangen, aber verschiedene Dateiformate wie .txt. oder .doc aufweisen – für die Vielzahl an Dateiformaten steht der Stern. Globbing wird zudem bei Denial-of-Service-Attacken verwendet, wenn Server absichtlich überlastet werden.[5]
  • Trunkierung: Bei Recherchen und Suchfunktionen in Datenbanken werden Suchbegriffe häufig mithilfe von Wildcards abgekürzt oder abgeschnitten. Der Suchbegriff Muster* würde alle Begriffe, die mit Muster beginnen und mit weiteren Buchstaben enden, anzeigen. Zum Beispiel Musterabgleich, Musterprüfung oder Musterbeispiel. Durch Trunkierung wird der Suchraum vergrößert. Beispiel: In einer Bibliotheksrecherche könnten alle Einträge gefunden werden, die einen bestimmten Suchbegriff enthalten.
  • Stemming: Beim Stemming werden unterschiedliche morphologische Varianten eines Wortes auf den Wortstamm zurückgeführt. Deklinierungen und Konjugationen von Wörtern können so auf ihre linguistische Basis – den Wortstamm – hin reduziert werden. Dieses Verfahren kommt im Information Retrieval (zum Beispiel durch Suchmaschinen) und der theoretischen Informatik zum Einsatz. Beispiel: Google nutzt wahrscheinlich ein ähnliches Verfahren im Rahmen der organischen Suche.[6]

Bedeutung für die Suchmaschinenoptimierung

RegEx können bei einigen Arbeiten im Bereich Suchmaschinenoptimierung äußerst sinnvoll sein.[7] Tracking- und Analyse-Tools wie zum Beispiel Google Analytics verfügen über eine Implementierung von RegEx.[8]

Bei Google Analytics dienen reguläre Ausdrücke beispielsweise dazu, Filter für IP-Adressen zu setzen. In den Profileinstellungen kann ein individueller Filter definiert werden, indem die IP-Adressen eines oder mehrerer Besucher ausgeschlossen werden. So fließt der Traffic aus einem Bereich von IP-Adressen nicht mit in die Reportings ein. Das ist sinnvoll, wenn Besucher-Statistiken um irrelevante Besuche bereinigt werden sollen – zum Beispiel die der eigenen Mitarbeiter.

Verschiedene Segmente können in Google Analytics ebenfalls mithilfe von RegEx bearbeitet werden. Zum Beispiel können Suchanfragen ausgeschlossen werden, die einen Markennamen enthalten. Dazu würde ein Segment definiert werden, das nur organischen Traffic miteinbezieht und nicht zu dem Markennamen passt, der vorab per RegEx definiert wurde: "[Mm]usterfirma" für Schreibweisen mit Groß- und Kleinbuchstaben. Auch verschiedene Arten von Keywords können ausgeschlossen werden, um herauszufinden, wie viel Traffic über zwei und drei Wort Keywords generiert wird. Gleiches gilt für Traffic aus anderen Quellen wie Newsletter, Emails und Linkpartnerschaften externer Websites.

Eine ähnliche Taktik kann beim Monitoring von Social Media Kanälen hilfreich sein: Hier würde eine Quelle definiert werden, indem der reguläre Ausdruck die möglichen Quellen festlegt. Zum Beispiel "facebook|twitter|youtube|linkedin". Nicht nur Google Analytics bietet eine Fülle an Möglichkeiten an, die mit regulären Ausdrücken ausgeschöpft werden können.[9] Auch Webprotokolle und Serverumgebungen können RegEx interpretieren und verarbeiten. So können Websites umgeleitet und als kanonische URL ausgezeichnet werden, indem bestimmte Muster per RegEx beschrieben werden.[10]

Einzelnachweise

  1. Tutorial Reguläre Ausdrücke danielfett.de. Abgerufen am 11.09.2015
  2. Tools regular-expressions.info. Abgerufen am 11.09.2015
  3. Über reguläre Ausdrücke support.google.com. Abgerufen am 11.09.2015
  4. Reguläre Sprachen, reguläre Ausdrücke lrz.de. Abgerufen am 11.09.2015
  5. globbing definition searchsecurity.techtarget.com. Abgerufen am 11.09.2015
  6. Interpreting Your Query googleguide.com. Abgerufen am 11.09.2015
  7. Regular Expressions Guide for SEO, Google Analytics & Google Tag Manager optimizesmart.com. Abgerufen am 11.09.2015
  8. A Marketer’s Guide To Using Regular Expressions In SEO searchengineland.com. Abgerufen am 11.09.2015
  9. How SEO’s Can Use Regular Expressions (Google Analytics) tutvid.com. Abgerufen am 11.09.2015
  10. How Regular Expression Affects SEO seo-hacker.com. Abgerufen am 11.09.2015

Weblinks