alexeyco
Новичок
Вопрос по регулярным выражениям
Есть функция:
Эта функция форматирует титул страницы. Например, так:
получим:
получим:
Но с некоторых пор понадобилось использовать такой подход:
получаем:
Есть функция:
PHP:
function replace($title = '', $sheet = '', $page = '') {
$tpl = "[title][ - sheet][: page]"; // Формат заголовка страницы
$title = ($title != '') ? "\\1$title" : '';
$sheet = ($sheet != '') ? "\\1$sheet" : '';
$page = ($page != '') ? "\\1$page" : '';
$search = array(
"#\[(.*?)title\]#si", // Вот в этих регулярных выражениях и возникла трудность
"#\[(.*?)sheet\]#si",
"#\[(.*?)page\]#si"
);
$replace = array(
$title,
$sheet,
$page
);
return preg_replace($search, $replace, $tpl);
}
PHP:
replace("Сайт о хомячках", "Уход", "Кормление");
А если попробовать так:Сайт о хомячках - Уход: Кормление
PHP:
replace("Сайт о хомячках", "Уход");
Понимаете да?Сайт о хомячках - Уход
Но с некоторых пор понадобилось использовать такой подход:
PHP:
replace("", "Уход", "Кормление");
а надо:- Уход: Кормление
Вопрос в том, чтобы составить регулярное выражение универсальным способом. Никто не может помочь в этом?Уход: Кормление