Identifizierung von Teilzeichenfolgen anhand komplexer Regeln
Angenommen, ich habe Textzeichenfolgen, die ungefähr so aussehen:
A-B-C-I1-I2-D-E-F-I1-I3-D-D-D-D-I1-I1-I2-I1-I1-I3-I3
Hier möchte ich Sequenzen von Markern identifizieren A
ist ein Marker,I3
ist ein Marker etc.) dasführt nach obe zu einer Untersequenz bestehend ausnu vonIX
Marker (d. h.I1
, I2
, oderI3
) das ein @ enthäI3
. Diese Untersequenz kann eine Länge von 1 haben (d. H. Ein einzelnes @ seiI3
marker) oder es kann eine unbegrenzte Länge haben, muss aber immer mindestens 1 @ enthaltI3
marker, und kann nur @ enthaltIX
Marker. In der Folge, die zum @ fühIX
Untersequenz,I1
undI2
kann einbezogen werden, aber niemalsI3
.
In der obigen Zeichenfolge muss ich Folgendes identifizieren:
A-B-C-I1-I2-D-E-F
as führt zumI1-I3
Untersequenz, die @ enthäI3
un
D-D-D-D
as führt zumI1-I1-I2-I1-I1-I3-I3
Untersequenz, die mindestens 1 @ enthäI3
.
Hier sind ein paar zusätzliche Beispiele:
A-B-I3-C-I3
von diesem String sollten wir @ identifizierA-B
weil es von einer Untersequenz von 1 gefolgt wird, die @ enthäI3
, und auchC
, weil es von einer Untersequenz von 1 gefolgt wird, die @ enthäI3
.
und
I3-A-I3
HierA
sollte identifiziert werden, da es von einer Untersequenz von 1 gefolgt wird, die @ enthäI3
. Der ErsteI3
selbst wird nicht identifiziert, da wir nur an Untersequenzen interessiert sind, auf die eine Untersequenz von @ folIX
Marker, die @ enthaltI3
.
Wie kann ich eine generische Funktion / Regex schreiben, die diese Aufgabe erfüllt?