riferendosi al gruppo già esistente in regex, c #
Domanda
Ho una regex dove
%word% can occur multiple times, separated by a "<"
% word% è definito come ". *? " | [a-zA-Z] +
così ho scritto
(".*"|[a-zA-Z]+)([<](".*"|[a-zA-Z]+))*
Esiste un modo per ridurlo usando i gruppi di acquisizione?
(".*"|[a-zA-Z]+)([<]\1)*,
Ma non credo che \ 1
possa essere usato perché significherebbe ripetere la prima acquisizione, poiché non saprei cosa è stato catturato in quanto può essere una stringa tra virgolette o una parola.
Qualsiasi cosa simile che posso usare per fare riferimento al gruppo precedentemente scritto. Sto lavorando in C #.
Soluzione 2
Poiché il supporto non è ancora disponibile per la funzione, ho creato un sostituto della stringa, in cui ho scritto le parole specifiche che devo sostituire con regex usando %% e quindi ho scritto il programma per sostituirlo con l'espressione regolare definita per testo.
Altri suggerimenti
usando String.Format per evitare la ripetizione e no non c'è modo di ripetere letteralmente il gruppo regex
String.Format("{0}([<]{0})*", @"("".*""|[a-zA-Z]+)")