href="/privet/vova/love/"- на вид -
href="/privet_vova_love". Помогите сломал уже голову.
<section>
<ul>
<li><a href="/moskva/">Москва</a></li>
<li><a href="/sankt-peterburg/">Санкт-Петербург</a></li>
<li><a href="/gorod/novosibirsk/">Новосибирск</a></li>
<li><a href="/gorod/ekaterinburg/">Екатеринбург</a></li>
<li><a href="/gorod/nijniy-novgorod/">Нижний Новгород</a></li>
<li><a href="/gorod/kazan/">Казань</a></li>
<li><a href="/gorod/chelyabinsk/">Челябинск</a></li>
<li><a href="/gorod/omsk/">Омск</a></li>
<li><a href="/gorod/samara/">Самара</a></li>
<li><a href="/gorod/rostov-na-donu/">Ростов-на-Дону</a></li>
<li><a href="/gorod/sochi/">Сочи</a></li>
<li><a href="/gorod/">ВСЕ ГОРОДА</a></li>
</ul>
</section>
$text = preg_replace_callback('/<li><a href=\"\/(?<link>.*?)\">/', '', $text);
$data = preg_replace_callback('/<li><a href=\"\/(?<link>.*?)\">/', 'url_punk_decode', data);
function url_punk_decode($matches)
{
$matches['link'] = str_replace('/', '_', $matches['link']);
$matches['link'] = str_replace('_#', '#', $matches['link']);
$matches['link'] = str_replace('_"', '"', $matches['link']);
$match_good = preg_replace('/"\/(.*?)"/', '"/'.$matches['link'].'"', $matches[0]);
$match_good = str_replace('_"', '"', $match_good);
return $match_good;
}