siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009

Причина в том, что в карте содержаться запрещенные к индексации урл. КЭП

Ladycharm:
"Рабочесть" регулярки от siv1987 проверьте сами...

/\b(\S+)'.$excep.'(?:\s+\1)+\b/

Str: регулярка для потех тех технарей

Res: регулярка для потех тех технарей

Str: регулярка для потех тех тех технарей

Res: регулярка для потех тех технарей

Str: регулярка для потех тех технарей технарей.

Res: регулярка для потех тех технарей.

djdiplomat:
Если гуру не против, мне будет очень интересно и полезно узнать, какое же из решений будет сочтено как наиболее приемлемое (идеальное).

Лучшее решение то, которое вы сами напишите. :)

Кстати еще один вариант

'/\b(\S+)'.$excep.'(?:\s+\1)+\b/', '\1'

fervent:
Для этого позитивные "(?=\s+\2)" и негативные "(?!..." утверждения и сделаны, разве нет?

С утверждением для исключений согласен, а для проверки шаблона, имхо, лучше подмаска. Да, работать будет, но если слова повторяются не два а три раза?

fervent:
Я бы не стал упрощать код без копания в деталях.

Все равно не все так сложно

$excep = (count($exceptions)) ? '(?!\s+('.implode('|', $exceptions).'))' : '';

echo preg_replace('#(^|\s)(\S+)'.$excep.'(?:\s+\2)+#', '\1\2', $z);

fervent:
Для этого вам нужен паттерн с двойным "assertion" (по-русски переводят как "утверждение").

Зачем? Всё сложное ненужно, всё нужное - просто. ©

#(\S+)(?!\s+(' . implode('|', $exceptions) . '))(?:\s+\1)#, '\1'

\1 в двойных кавычках \\1

ivan-lev:
Что за задачник такой?

Да, djdiplomat, и почему мы должны их решать за вас, а? Если хотите выучить регулярные выражения начните с чего нибудь полегче. Если за вас будут решать задачи, толкам вы так не научитесь.

---------- Добавлено 11.04.2013 в 20:10 ----------

ivan-lev:
В некоторых языках это "задачей похлеще" назвать нельзя.. python, например:

list($a, $b) = array($b, $a); :)

jano:
Скиньте лучше пример рабочего кода, что и куда вставить я уже разберусь.

/ru/forum/comment/11653765


if($_COOKIE['referer']){
echo "singup2.php";
}
else{
echo "singup.php";
}
jano:
подсказали, но не то, что я хотел бы

А что вы хотели бы? По моему это именно то, что вы описали.

djdiplomat:
Найти альтернативное решение...

Ну два альтернативных решений выше уже дали, вот еще одно немного улучшенное

find: /([^\s]+)\s+(?:\1(\s+|$|\.|,))+/

replace: $1$2

исключения юзать по варианту предложенному RiDDi.

zusull:
это в ручную придется в каждой статье вставлять?

Да.

zusull:
Нужен вариант чтоб в коде где-то прописать и контекст вставился на всех статьях

Поищите, тут когда обсуждались возможности как автоматически можно разбить статью на две части.

Сделать макрос типа {CONTEXT} вставить его в нужное место в статье, и в коде его реплейсить.

Всего: 6568