Bueno, sin complicarme mucho, te pude armar algo:
Código PHP:
<?php
function sacar($str) {
preg_match_all("/{+%{1}([a-z0-9]+)}{1}/i",$str,$out);
return $out;
}
Por ejemplo, este texto:
Código PHP:
<?php
$texto="este es mi texto para {%joan} y {%pepe}";
?>
Te dara un vector, con las coincidencias originales, y las que de out, o sea, haciendo:
Código PHP:
<?php
print_r(sacar($texto));
?>
Tendrías algo como:
Código PHP:
<?php
Array ( [0] => Array ( [0] => {%joan} [1] => {%pepe} ) [1] => Array ( [0] => joan [1] => pepe ) ) ?>
Espero te sirva.