Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Вырезать из текста передаваемого в <textarea> все


Автор: Dante5 7.3.2015, 19:34
пробую вырезать через 

Код PHP
1
preg_replace('((http:\/\/)?(www\.)?([\w\d-]*?\.)+(\w{2,4}))i',':18:',$mess)
немного не так работае как бы хотелось .
к примеру если такой вариант ссылки : <a href='http://vk.com/id111111'>ntcn</a> или [a href='http://vk.com/id11111']ntcn[/a] при обработке получается так <a href=':18:/id11111'>ntcn</a> или [a href=':18:/id11111 ']ntcn[/a] а хотелось бы получилось только значение ":18:" (:18: - это смаил)

второй вариант если просто ссылка без тега http://vk.com/id71594164 то после обработки получается так 

:18:/id71594164 как обрезать полностью все и оставлять и заменbть на :18: а так же проверять ссылки с проблеом и тже вырезать пример 

http://vk . com/id71594164 и vk . com

что еще надо дописать в выраение

Автор: Aliance 10.3.2015, 09:07
Ну так у вас регулярка ищет то, что вы ей "скажите" искать. У вас же нет ничего после доменной зоны. Добавьте в конец что-то типа (\/?)(.*+) и будет вам счастье.

И, кстати, зачем вам все вхождения нужны в карманах? Можно поставить ?: в начало каждого вхождения, чтобы вхождения не записывались.

Примерно так: https://regex101.com/r/cO8bV7/1

А что касается html-ссылок (а не только url), то так и нужно дописать все варианты, компьютер за вас их не предугадает. Допустим так: https://regex101.com/r/cO8bV7/2

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)