Регулярное выражение: Как выбрать все ссылки без ббкода?
Есть регулярное выражение:
$text = preg_replace("~(?<!\[url\])((http|https|ftp|ftps)://)([а-яА-Яa-zA-Z.\/0-9-+_?=&%\#;])+~siu", '[url]$0[/url]', $text); Которое ищет все ссылки на странице без тэга и оборачивает их в код. Чтобы не оборачивать уже обёрнутую ссылку, добавлено отрицание тэга (?<!\[url\]) Проблема возникла с тэгами [url=ссылка]ссылка[/url]. Отрицание (?<!\[url\])не помогает. Как быть? |
Цитата:
|
А как на счет ссылок с "relative uri"?
Не проще искать tags|properties с url указателем? Дальше проще... выборка всего что в скобках... |
Цитата:
|
Цитата:
А такое паскудство наблюдается не только со ссылками, но еще и :) превращает в рожицу, хотя написанное двоеточие и закрывающая скобка не обязательно означает ввод пользователем смайла. Я без тебя прекрасно понимаю откуда они. Это вопрос автору для "задуматься". |
держи:
$text = preg_replace("~(\[url(?U)(=.*)?\])?((http|https|ftp|ftps)://)([а-яА-Яa-zA-Z.\/0-9-+_?=&%\#;]+)(\[\/url\])?~siu", '[url$2]$3$5[/url]', $text); |
Часовой пояс GMT +3, время: 03:08. |