refiriéndose al grupo ya existente en regex, c #
Pregunta
Tengo una expresión regular donde
%word% can occur multiple times, separated by a "<"
% word% se define como ". *? " | [a-zA-Z] +
así que escribí
(".*"|[a-zA-Z]+)([<](".*"|[a-zA-Z]+))*
¿Hay alguna forma de reducirlo usando grupos de captura?
(".*"|[a-zA-Z]+)([<]\1)*,
Pero no creo que \ 1
pueda usarse, ya que significaría repetir la primera captura, ya que no sabría qué se capturó, ya que puede ser una cadena entre comillas o una palabra.
Cualquier cosa similar que pueda usar para referirme al grupo escrito anteriormente. Estoy trabajando en C #.
Solución 2
Como el soporte aún no está disponible para la característica, hice un reemplazo de cadena, donde escribí las palabras específicas que necesito reemplazar por regex usando %% y luego escribí el programa para reemplazarlo por la expresión regular definida para el texto.
Otros consejos
usando String.Format para evitar la repetición y no, no hay forma de repetir el grupo de expresiones regulares literalmente
String.Format("{0}([<]{0})*", @"("".*""|[a-zA-Z]+)")