Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Die beiden Teilausdrücke lassen sich nun mithilfe des oder-Operators verbinden und in c()est pas einfügen: c((e_n'(|_))|('(|_)))est pas

Image Added

Info
iconfalsetitleAn die Hand

Bei der Formulierung komplexerer regulärer Ausdruck mit oder-Operatoren und Gruppierungsklammern muss bedacht werden:

  • Ein senkrechter Strich setzt die sich links von ihm befindende Zeichenkette mit der sich rechts von ihm befindende in eine oder-Relation. Sind keine Klammern gesetzt, so wird der gesamte Ausdruck einbezogen.
  • Um die Reichweite des oder-Operators einzuschränken, muss er mit den entsprechenden Zeichenketten (links und rechts) in runde Klammern gesetzt werden. Der oder-Operator reicht in dem Fall von der äußersten öffnenden (nicht links von ihm schließenden) Klammer links von ihm bis zur äußersten schließenden (nicht rechts von ihm öffnenden) Klammer rechts von ihm.
  • Mithilfe der Klammern lässt sich präzise definieren, was in Alternative wozu steht.
  • Eine Alternative kann auch kein einziges Zeichen enthalten.

Die Ersetzfunktion

Die Klammern erweisen sich als überaus hilfreich, arbeitet man mit der Ersetzfunktion eines Texteditors (Die Funktion "Ersetzen" befindet sich meist irgendwo in der Nähe der Funktion Suchen "Suchen". Bei Notepad/ Textpad sind beide unter dem Menüpunkt "Suchen"/ "Search" gelistet). Diese Funktion ist insofern sinnvoll, als dass sie die Möglichkeit eröffnet, Textdaten und ihm zugrundeliegende Muster aktiv zu manipulieren.

Eine einfache Ersetz-Operation bestünde beispielsweise darin, alle Formen des Farbadjektivs rosso in einem Text durch die Nennform rosso zu ersetzen.Ein regulärer Ausdruck zum Auffinden aller Formen könnte dabei so lauten:

Ausdruckmatcht...
ross[oaie]rosso, rossa, rossi, rosse

Im "Ersetzen durch"-Feld wird nun die überschreibende Form definiert, hier rosso.

Ausdruckmatcht...Ersetzen durch...Ergebnis
ross[oaie]rosso, rossa, rossi, rosserossorosso, rosso, rosso, rosso

Eine weitere Aufgabe wäre zum Beispiel das Ersetzen der Formen von rosso durch entsprechende Formen von giallo (sprich: giallo, gialla, gialli, gialle). Auch diese lässt sich einfach lösen, indem man den Endvokal im regulären Ausdruck ignoriert und nur das lexikalische Morphem ersetzt. Alternativ lässt sich jedoch auch mit den runden Klammern arbeiten:

Ausdruckmatcht...Ersetzen durch...Ergebnis
rossross, ross, ross, rossgiallgiallo, gialla, gialli, gialle

ross([oaie])

oder:

ross\([oaie]\)

rosso, rossa, rossi, rossegiall\1giallo, gialla, gialli, gialle

Während die erste Lösung wahrscheinlich einleuchtet, bedarf die zweite einer weitergehenden Erklärung: Allen Inhalten, die sich in runden Klammern befinden, wird im Rahnen eines Ersetzvorgangs eine Kennzahl zugeordnet. Der Inhalt der ersten Klammer erhält die Kennzahl 1, der der zweiten 2, der der dritten 3 und so weiter. In dem vorliegenden Beispiel besteht der Inhalt entweder aus dem Buchstaben o, a, i oder e. Dieser Inhalt kann nun als Zeichen (bzw. Zeichenkette) in die ersetzende Form mithilfe der Kombination von Backslash und der entsprechenden Kennzahl übernommen werden.

...

  • .

...

Ausdruck in Ersetzen-ZeileErgebnis
\nFügt eine neue Zeile ein
\tFügt einen Tabulator ein

Keine Idee für Anwendungsmöglichkeiten? Eventuell erfordern Tools, so wie das Annotationstool TreeTagger, dass Texte in einer bestimmten Form vorliegen. Bei TreeTagger entpräche dies der Formatierung ein Wort pro Zeile. Eine solche Form könnte zum Beispiel hergestellt werden, indem alle Leerstellen (_) durch \n ersetzt werden.

...