Anker

Top  Previous  Next

Skripte > Tokendefinitionen > Reguläre Ausdrücke > Anker

 

Achtung: Die Wirksamkeit der Anker hängt von der Einstellung der auszulassenden Zeichen ab, und davon, ob der sie verwendende Ausdruck Ziel eines SKIP-Knotens ist oder nicht. (s. Anmerkung unten)

 

Anker sind Elemente regulärer Ausdrücke, die markante Positionen im Text erkennen. Die Länge des von einem Anker erkannten Textes ist null.

 

Zeilenanker

 

'^' passt zum Beginn einer Zeile, wenn es als erstes Zeichen eines Ausdrucks oder eines Unterausdrucks verwendet wird.

 

'$' passt zum Zeilenende, wenn es als letztes Zeichen eines Ausdrucks oder eines Unterausdrucks verwendet wird.

 

 

Wortanker

 

"\<" passt zum Wortanfang.

 

"\>" passt zum Wortende.

 

"\b" passt zum Wortanfang oder -ende.

 

"\B" passt zu einer Position innerhalb eines Wortes.

 

 

Pufferanker

 

Der Parsprozeß in TETRA erfolgt linear mit dem Text. In jedem Stadium dieses Prozesses befindet sich dieser an einer bestimmten Position im Text, die den bereits abgearbeiteten Textteil von dem noch nicht analysierten Teil trennt. Auf den letzteren Teil lassen sich die Pufferanker anwenden.

 

"\`" oder "\A" passen zum Beginn des Puffers.

 

"\'" oder "\z" passen zum Ende des Puffers.

 

"\Z" passt zum Ende des Puffers oder zu einem oder mehreren Zeilenumbruchszeichen unmittelbar vor dem Pufferende.

 

Anmerkung:

 

Der Pufferanker "\A" wird in TETRA automatisch allen regulären Ausdrücken  vorangestellt. Das jeweils nächste Token - der Suchpuffer - soll dann an der aktuellen Textposition im Anschluss an die auszulassenden Zeichen beginnen. Damit wird die Verwendung des Ankers "^" hinfällig. Für den regulären Ausdruck ist der Beginn des Suchpuffers zugleich ein Zeilenanfang, auch wenn der Suchpuffer in der Mitte einer Zeile des Eingabetextes beginnt.

Dennoch kann die Verwendung von "^" Sinn machen, wenn der Anker eines der Sprungziele eines SKIP-Knotens markiert.

 

Sei ein Token definiert als:

 

LINE_START_WORD = ^\w+

 

und enthalte die Grammatik:

 

SKIP  LINE_START_WORD

 

so wird die erste Zeile des folgenden Textes übersprungen:

 

"  Wort1 steht nicht am Zeilenanfang

Wort2 steht am Zeilenanfang"

 

und "Wort2" wird als LINE_START_WORD erkannt.



Diese Seite gehört zur TextTransformer Dokumentation

Home  Inhalt  English