fnando 0 Denunciar post Postado Julho 7, 2004 Estou fazendo um sistema de templates e encontrei um problema. Os padrões para a criação do template seguirão o skema abaixo. <tpl:pegar_perfil cod="1" color="#FF0000"> <strong>texto</strong><br> textos com e sem formatação HTML</tpl:pegar_perfil>O interpretador de template irá pegar o pegar_perfil, que é uma função que deve ser criada e passar como parâmetro os atributos e o conteúdo. Comecei a criar a regex e cheguei em uma. <tpl:([a-z0-9_]+) ?([^>]+)>(.*)<\/tpl:\1>Usando o programa Visual REGEX para ver os matches, encontrei um problema. Se você utiliza apenas 1 nome (pegar_perfil) ele funciona legal.O problema está quando ele aparece mais de uma vez. Ele sempre bate o padrão <\/tpl:\1> com a última ocorrência. As imagens abaixo ilustram melhor. A parte pink é relativa ao padrão (.*), enquanto a 2ª parte vermelha é relativa ao padrão <\/tpl:\1> Ocorrência única Mais de uma ocorrência Alguém sabe como me ajudar?!? Outra coisa, como eu migro essa regex para o PHP? Mais especificamente para a função preg_replace_callback. Desde já, agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
fnando 0 Denunciar post Postado Julho 8, 2004 Eu resolvi de uma outra maneira. Mas de qualquer modo, vlw! :P Taí a solução. $regex = "/<tpx:([a-z0-9_]+) ([^>]*)>(.*?)<\/tpx:.*?>/si"; Aliás, achei muito interessante sua solução! Compartilhar este post Link para o post Compartilhar em outros sites