Pergunta

Eu tenho um regex onde

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

% word% é definido como ".*?"|[a-zA-Z]+Então eu escrevi

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

Existe alguma maneira de encolhê -lo usando grupos de captura?

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

Mas eu não acho \1 Pode ser usado, pois isso significa repetir a primeira captura, pois eu não saberia o que foi capturado, pois pode ser uma corda citada ou uma palavra.

Qualquer coisa semelhante que eu possa usar para referir a correspondência do grupo escrito anteriormente. Estou trabalhando em C#.

Foi útil?

Solução 2

Como o suporte ainda não existe para o recurso, fiz um substituto de string, onde escrevi as palavras específicas que preciso substituir por regex usando %% e depois escrevi o programa para substituí -lo pela expressão regular definida para o texto.

Outras dicas

Usando String.Format para evitar a repetição e não, não há como repetir o grupo regex literalmente

String.Format("{0}([<]{0})*", @"("".*""|[a-zA-Z]+)")
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top