У меня проблемы с рисунком.Мне нужно обработать некоторый текст, например:
<div>{text1}</div><span>{text2}</span>
После этого мне нужно получить вместо {text1} и {text2} несколько слов из словаря.Я готовлю интерфейс для разных языков.Это в PHP.Сейчас у меня есть что-то вроде этого, но это не работает:
function translate_callback($matches) {
global $dict;
print_r($matches);
return 'replacement';
}
function translate($input) {
return preg_replace_callback('/(\{.+\})/', 'translate_callback', $input);
}
echo translate('<div>{bodynum}</div><span>{innernum}</span>');
Это тестовый сценарий, но я не могу найти способ определить шаблон, потому что этот в коде соответствует
{bodynum}</div><span>{innernum}
но я хочу шаблон, который будет соответствовать
{bodynum} and then {innernum}
Может кто-нибудь помочь мне с этим.Спасибо.
Решение:
Чтобы сопоставить любой символ между {и}, но не жадничать - сопоставьте самую короткую строку, которая заканчивается на} (знак? Stop + жадный).
Таким образом, шаблон теперь выглядит так: '/ average(.+?)‹/' и является именно тем, что я хочу.