Причина в том, что в карте содержаться запрещенные к индексации урл. КЭП
/\b(\S+)'.$excep.'(?:\s+\1)+\b/
Str: регулярка для потех тех технарей
Res: регулярка для потех тех технарей
Str: регулярка для потех тех тех технарей
Str: регулярка для потех тех технарей технарей.
Res: регулярка для потех тех технарей.
Лучшее решение то, которое вы сами напишите. :)
Кстати еще один вариант
'/\b(\S+)'.$excep.'(?:\s+\1)+\b/', '\1'
С утверждением для исключений согласен, а для проверки шаблона, имхо, лучше подмаска. Да, работать будет, но если слова повторяются не два а три раза?
Все равно не все так сложно
$excep = (count($exceptions)) ? '(?!\s+('.implode('|', $exceptions).'))' : '';
echo preg_replace('#(^|\s)(\S+)'.$excep.'(?:\s+\2)+#', '\1\2', $z);
Зачем? Всё сложное ненужно, всё нужное - просто. ©
#(\S+)(?!\s+(' . implode('|', $exceptions) . '))(?:\s+\1)#, '\1'
\1 в двойных кавычках \\1
Да, djdiplomat, и почему мы должны их решать за вас, а? Если хотите выучить регулярные выражения начните с чего нибудь полегче. Если за вас будут решать задачи, толкам вы так не научитесь.---------- Добавлено 11.04.2013 в 20:10 ----------
list($a, $b) = array($b, $a); :)
/ru/forum/comment/11653765
if($_COOKIE['referer']){ echo "singup2.php"; } else{ echo "singup.php"; }
А что вы хотели бы? По моему это именно то, что вы описали.
Ну два альтернативных решений выше уже дали, вот еще одно немного улучшенное
find: /([^\s]+)\s+(?:\1(\s+|$|\.|,))+/
replace: $1$2
исключения юзать по варианту предложенному RiDDi.
Да.
Поищите, тут когда обсуждались возможности как автоматически можно разбить статью на две части.
Сделать макрос типа {CONTEXT} вставить его в нужное место в статье, и в коде его реплейсить.