Frage

Ich habe einen regulären Ausdruck, wo

%word% can occur multiple times, separated by a "<"

% Wort% als ".*?"|[a-zA-Z]+ definiert so schrieb i

(".*"|[a-zA-Z]+)([<](".*"|[a-zA-Z]+))*

Gibt es eine Möglichkeit ich es mit einfangenden Gruppen schrumpfen kann?

(".*"|[a-zA-Z]+)([<]\1)*, 

Aber ich glaube nicht, \1 verwendet werden kann, da es den ersten Fang bedeuten würde wiederholen, wie ich nicht wissen würde, was gefangen genommen wurde, da es eine Zeichenfolge in Anführungszeichen oder ein Wort sein kann.

Jede Sache ähnlich ich kann beziehen verwenden, um die zuvor geschriebene Gruppe entspricht. Ich arbeite in C #.

War es hilfreich?

Lösung 2

Da die Unterstützung noch für das Feature nicht da ist, habe ich einen String replacer, wo ich die bestimmten Worte schrieb ich brauche, um durch regex ersetzt %% mit und schrieb dann das Programm für die, die durch den regulären Ausdruck zu ersetzen, Text.

Andere Tipps

String.Format Wiederholung zu vermeiden, mit und ohne gibt es keine Möglichkeit, die regex Gruppe zu wiederholen wörtlich

String.Format("{0}([<]{0})*", @"("".*""|[a-zA-Z]+)")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top