Pergunta

Encontrei uma possibilidade interessante em muitos motores regex:

É possível colocar referência de back -referência dentro do grupo de captura e fazer referência a este grupo.

Por exemplo: (\1)

Minha pergunta: para quais padrões regex pode ser usado? Eu não consigo imaginar ...

Foi útil?

Solução

Há um Explicação para o uso de referências aninhadas, que acho que demonstra claramente a utilidade marginal desse recurso.

Outras dicas

Eu tenho um longo esquema de YAML, que eu preciso/quero mudar disso:

columns:
    id:
      type: string(36)
      fixed: true
      unsigned: false
      primary: true
      autoincrement: false
    descripcion:
      type: string(45)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false

Para isso:

columns:
    id: {type: string(36), fixed: true, unsigned: false, primary: true, autoincrement: false}
    descripcion: {...}...

Nesse caso, preciso de um nível de recursão em backrefências, porque os nomes das colunas estão entre a descrição da coluna. Isso é adequado para cada linha, mas eu não posso colocar "{}" Around $ 1, eu acabaria com colchetes entre cada campo de descrição:

"\n^      ([^\n]+)"

Que tal isso (ignore o espaço em branco):

{ .* ( { .* \1 .* } ) .* }

Para combinar com o corpo de um método em c#/java/...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top