Sou bastante bom com regex, mas tenho um problema que não consigo entender.
Em um documento, desejo substituir todas as ocorrências de um texto que está entre 2 tags, mas não substituí-las fora das tags.
As tags que desejo substituir são ][, e somente se estiverem dentro de { }. A quantidade de ][ é desconhecida. Pode ser 1, 2 ou até 7.
Aqui está um exemplo:
This is a tilte ][
And here some data {[tag1][tag2][tag3][tag4]}
This is another tilte ][
And here some data {[tag1][tag2][tag3][tag4]}
Digamos que eu queira substituir o ][ por regex quando estiver entre { e }. Como faço isso?
Obviamente seria isso:
{.+?\]\[.+?}
mas isso só substitui a primeira vez. Não quero executá-lo 20 vezes esperando que sejam 20 vezes ou menos.
Estou usando o Notepad++
(?:^.*?\{|\G(?!^)).*?\K]\[
,
. matches newline
Explicação:
Captura de tela (antes):
Captura de tela (depois):