[Tustep-Liste] Frage zu Pattern Matching
Schneider, Matthias
schneiderm at uni-trier.de
Fr Mai 19 14:15:39 CEST 2017
Liebe Liste,
bei einer Auszeichnungsaufgabe bin ich auf eine Funktionsweise des {}-Pattern Matchings gestoßen, die ich noch nicht verstehe:
Gegeben sind Muster wie das folgende, das in meiner Datei in Datensatz 0.11 steht:
<belGrp><belDat font-name="Futura">#[2003]1723#[2002]</belDat>es <i>(ist)</i> durch unglück und nicht durch seinen betrieb verlohren gangen <bibl><i>russ. land-recht 75.#[2003]</i></bibl></belGrp>
Der Text zwischen "</belDat>" und "<bibl>" soll als Zitat (<quote>...</quote>) getaggt werden, was an sich trivial ist. Gerne möchte ich allerdings Blanks, die hinter "</belDat>" und vor "<bibl>" stehen können (0, 1, ggf. auch mehrere Blanks), vom Tagging ausschließen.
Mein erster Versuch, der wie folgt aussah, lief ins Leere:
a,(0.11,0.11),,|</beldat>{0-0} {|}*{|}{0-0} <bibl>|{=1=}<quote>{=2=}</quote>{=3=}|
Lasse ich hingegen den zweiten Quantifizierer "{0-0}" weg, funktioniert das testweise auf den Datensatz 0.11 beschränkte Austauschen wie gewünscht. Allerdings würden dann bei Mehrfachblanks alle bis auf das letzte in das neue <quote>-Tag integriert:
a,(0.11,0.11),,|</beldat>{0-0} {|}*{|} <bibl>|{=1=}<quote>{=2=}</quote>{=3=}|
Eine Ausweichmöglichkeit scheint darin zu bestehen, die Vorschrift für "0 bis beliebig viele" Leerzeichen als Stringgruppe anzulegen. Dann werden bei mehrfache Blanks komplett aus dem Tagging ausgeschlossen:
s:mb=|{0-0} |
--> a,(0.11,0.11),,|</beldat>{S:mb}{|}*{|}{S:mb}<bibl>|{=1=}<quote>{=2=}</quote>{=3=}|
Was sich mir bisher nicht erschließt, ist die Frage, warum mittels Stringgruppeneinsatz funktioniert, was bei unmittelbarer Definition nicht zu klappen scheint.
Viele Grüße in die Runde
Matthias Schneider
====================================================
| Matthias Schneider, M.A.
|__Kompetenzzentrum für elektronische Erschließungs-
| und Publikationsverfahren in den
| Geisteswissenschaften
|__Trier Center for Digital Humanities
|__Universität Trier
|__DM 341
|__Mail: schneiderm at uni-trier.de
|__Homepage:
| http://www.kompetenzzentrum.uni-trier.de
| http://www.m-schneider.eu
|__twitter: @ms91tru, @museumdighum
|__Telephon:
| + 49 651 201 2935
====================================================
Mehr Informationen über die Mailingliste Tustep-Liste