Versionen im Vergleich

Schlüssel

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

...

Quantitativer OperatorBedeutung

*?

das vorausgehende Zeichen kommt beliebig oft vor (0 bis unendlich)

aber: wähle die geringstmögliche Anzahl

??

das vorausgehende Zeichen kommt 0 oder 1 mal vor

aber: lieber 0 als 1 mal

+?

das vorausgehende Zeichen kommt 1 mal oder häufiger vor

aber: wähle die geringstmögliche Anzahl

 {1,3}?

das vorausgehende Zeichen kommt 1, 2 oder 3 mal vor

aber: wähle die geringstmögliche Anzahl

 

Während also d.*_ "d ich ihr dich mir ihn er uns wir sie euch du Ihnen Sie dir sie ihm andere " umfasst, liefert d.*?_ gleich mehrere (kleinstmögliche) Ergebnisse "d ", "dich ", "du ", "dir " und "dere " (dorthin nicht, da es von keiner Leerstelle gefolgt wird). Um Stellen wir die Verfeinerung der Ergebnisse zu verfeinern, ließe sich auch hier mit Positionsdefinitionen arbeiten. Alle gesuchten Pronomen zeichnen sich durch ein d am Wortanfang aus. Um ein Zeichen am Wortanfang zu verankern, steht uns der Positionsanker \<zur Verfügung (s.o.), also \<d.*?_ oder \<d.+?_. Auf diese Weise wird auch dere herausgefiltert. Bleibt nur noch eins zu klären: Wie wird man auch das "d" zu Beginn der Zeile los? Zum jetzigen Zeitpunkt leider nur mit einer Verlegenheitslösung. Weder + noch * scheinen für die Suche ideal. *  bewirkt in \<d.*?_, dass das d am Zeilenanfang samt Leerstelle mit einbezogen wird.  \<d.+?_ schreibt vor, dass zwischen dem d und der Leerstelle mindestens ein weiteres Zeichen vorhanden sein muss. Das ist es jedoch nicht, weshalb hier die Leerstelle und das gesamte folgende Wort vor der nächsten Leerstelle einbezogen werden

 

d ich ihr dich

zunächst zurück und betonen an dieser Stelle stattdessen,  dass laziness nicht bedeutet, dass nur Ergebnisse ausgegeben werden, die dem kürzesten Muster entsprechen. Es weist lediglich an, bei mehreren Möglichkeiten den kurzmöglichsten Ausschnitt zu wählen. d. {1,3}?_ zieht du dir nicht vor, jedoch du dem längeren du Ihnen.

Was soll ich damit?

Die Frage aller Fragen: Was soll ich damit eigentlich anfangen können? Ich kann zum Beispiel Häufigkeiten für bestimmte Phänomene erfassen. Will ich in einem Korpus des Französischen beispielsweise erfassen, wie häufig das Verb finir in all seinen Formen vorkommt, so kann ich dies sehr zeitsparend mit \<fini.{0,6}\>_  (j'ai fini bis nous finissions) oder einfach mit \<fini.*?\>  in Erfahrung bringen (Eine snschließende Bereinigung der Ergebnisse kann dennoch nötig sein!). Ich kann auch nach flektierten Formen des Italienischen suchen, ohne jede Form einzeln eintippen zu müssen, z.B. <\san.\> für sano, sana, sani und sane. oder zwei variierende Formen wie comprare und comperare durch compe?rare erfassen. Auch kann ich mir anzeigen lassen, wie viel von dem sprachlichen Kontext des Gesuchten ich in meine Ergebnisse integrieren will. Interessiert mich der Satzkontext von compe?rare, kann ich mir durch .{50}compe?rare_.{50} jeweils 50 Zeichen vor und nach compe?rare_ anzeigen lassen.

Info
iconfalse
titleAn die Hand

 

 

Es ist wichtig zu betonen, dass laziness nicht bedeutet, dass nur Ergebnisse ausgegeben werden, die dem kürzesten Muster entsprechen. Es weist lediglich an, bei mehreren Möglichkeiten den kurzmöglichsten Ausschnitt zu wählen.
_d. {1,3}?_

 

...

Um das richtige Muster zu definieren, sollte ich mir Gedanken darüber machen:

  • was meine Ergebnisse gemeinsam haben müssen.
  • ob die Gemeinsamkeiten konkrete Buchstaben(folgen), Positionen oder eine Mischung aus beidem betreffen.
  • welche Bausteine der gewünschten Ergebnisse variabel sind.
  • wie viele variabel besetzte stellen darf es (minimal, maximal) zwischen konkret definierten Zeichen oder Positionsankern geben?
  • welche Grenzen ich für gierige Operatoren setze (laziness, Begrenzung durch Leerstelle, etc.). 
  • was ich von der Umgebung des Gesuchten in meine Ergebnisse integrieren will.