LINUX.ORG.RU

Регулярные выражения.


0

1

Здравствуйте. Пишу регулярное выражение на php. Необходимо, чтобы всем ссылкам, кроме как site.com добавлялся target=«_blank». Решаю эту задачу с помощью preg_replace. Уже получается добавлять target=«_blank» только скажем при том условии, что я встречаю в ссылке доменное имя site2.com. А мне надо, чтобы если не встречаю site.com в тегах <a></a> грубо говоря, то добавлять target=«_blank». Загвоздка в том, что я не знаю, как отрицание слова (ну мол не нашел слово site.com), произвести в регулярке. Благодарен за помощь.

Ответ на: комментарий от projdevel

скорее всего можно только по одному символу инверсию произвести(^), а не по слову

инверсия по слову:

[^(word)]

obinos ()
Ответ на: комментарий от projdevel

> $template = «/<a\s*href=['\»](.*?!($domain_one|$domain_two).*)['\«].*>(.*)<\/a>/smiU»;

ну и где здесь конструкция, которую я тебе выше посоветовал?

arsi ★★★★★ ()

Some people, when confronted with a problem, think „I know, I’ll use regular expressions.“ Now they have two problems.

if (strpos($url, "/site.com") === False)
	// добавляем

Не проще?

Kalashnikov ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.