|
Нужно регулярное выражение найти все url в тексте | ☑ | ||
---|---|---|---|---|
0
Помогите
16.12.14
✎
06:18
|
Собственно сабж.
В интернетах много нашел, но все очень сложные и навороченные, и при том разные. И не проходят некоторые тесты. Есть какая-нибудь универсальная, проверенная, утвержденная, безошибочная, оптимальная? |
|||
1
Woldemar22LR
16.12.14
✎
07:43
|
тебе на каком языке?
|
|||
2
Помогите
16.12.14
✎
07:59
|
на php
|
|||
3
Помогите
16.12.14
✎
09:09
|
Апчху!
|
|||
4
Woldemar22LR
16.12.14
✎
09:11
|
А на Perl никак не подойдет?
|
|||
5
Помогите
16.12.14
✎
09:14
|
(4) Подойдет. Переделаю на PHP сам
|
|||
6
Asmody
16.12.14
✎
09:58
|
Универсального на все случаи нет.
Могу кинуть регулярку из кода форума. |
|||
7
Asmody
16.12.14
✎
10:02
|
function filter_urls($message_text)
{ $regexp = '/((?:(?:(?:ht|f)tps?:\/\/)|(?:www.))[^<\s]+[[:alnum:]|\/])([^[:alnum:]](?:<br ?\/?>)[^a-zа-€0-9]|\s|$)/si'; $new_message_text = preg_replace_callback($regexp, 'filter_urls_callback', $message_text); return $new_message_text; } |
|||
8
Гёдза
16.12.14
✎
10:18
|
(7) Это тот что на мисте?
|
|||
9
su_mai
16.12.14
✎
10:28
|
(0) >И не проходят некоторые тесты.
Какие тесты? |
|||
10
Помогите
16.12.14
✎
13:04
|
(7) Вообще не проходит тесты, первые же два не прошел:
<a href=http://ya.ru>yandex</a> "http://ya.ru" |
|||
11
Помогите
16.12.14
✎
13:05
|
Более сложные даже не стал пробовать
|
|||
12
Помогите
16.12.14
✎
13:35
|
Апну
|
|||
13
su_mai
16.12.14
✎
14:04
|
Чисто на вскидку :)
(ht|f)tp(s)?://(w{3}\.)?([0-9a-zA-Zа-яА-Я_-]\.?)+ |
|||
14
su_mai
16.12.14
✎
14:11
|
+(13) хотя конечно спецификация w3c определяет более широкие варианты для url
|
|||
15
Помогите
16.12.14
✎
17:03
|
(13) Сам понимаешь что слабовато. Без тестов даже видно. Где / слэш? Буквы Ёё забыл. И т.д.
|
|||
16
Записьдампа
16.12.14
✎
17:32
|
(15) Тебе шашечки или ехать, т-щ экзаменатор?
((?:ht|f)tps?://\S+) Найти!=Проверить |
|||
17
su_mai
16.12.14
✎
20:25
|
(15) Я думал ты сам что то можешь... :(
|
|||
18
su_mai
16.12.14
✎
20:26
|
+(17)
(ht|f)tp(s)?://(w{3}\.)?([0-9a-zA-Zа-яА-Я_-]\.?)+(/[^<> \r\n]+)? |
|||
19
Asmody
16.12.14
✎
21:05
|
(10) не знаю, что у тебя там за тесты, http://ya.ru - работает
|
|||
20
User_Agronom
16.12.14
✎
22:38
|
(10) а www в выражении не заметно?
|
|||
21
User_Agronom
16.12.14
✎
22:38
|
(20) Виноват, невнимательно смотрел.
|
|||
22
Адинэснег
16.12.14
✎
22:55
|
(10) хреф у а без кавычек
|
|||
23
Помогите
17.12.14
✎
11:52
|
(17) Могу конечно, но этот вопрос сильно сложный для меня. (18) Слабовато. Видно без проверок
(19) Пример двух тестов которые твой скрипт не проходит смотри в (10) (22) Да. Что ты этим хотел сказать? |
|||
24
Помогите
18.12.14
✎
06:23
|
никто не пользовался регулярками для поиска урлов?
|
|||
25
su_mai
18.12.14
✎
09:28
|
(23) >(18) Слабовато. Видно без проверок
Никто и не спорит (13)(14), что бы сделать универсальное надо реализовать стандарт w3c url, а это время деньги. Приведи примеры которые не проходят, просто интересно. Я тестировал на своих элементарных примерах: http://zalil-slil.rusfolder.net/files/42564930 Находит все начинающиеся с http или ftp. |
|||
26
Помогите
18.12.14
✎
09:52
|
(25) посмотрю какие тесты не пройдет. По коду сразу вопрос, (w{3}\.)? нахрена???
|
|||
27
Помогите
18.12.14
✎
10:02
|
(25) пример: http://ya.ru. точку не отсекает в конце
|
|||
28
Помогите
18.12.14
✎
10:17
|
(16) Росписьдата, что ты этим хотел сказать? Не понятно.
|
|||
29
xaozai
18.12.14
✎
10:20
|
Здесь есть неплохой ответ и ссылка на содержательное обсуждение вопроса:
http://superuser.com/questions/623168/regex-to-parse-urls-from-text |
|||
30
su_mai
18.12.14
✎
10:44
|
(29) Спасибо
|
|||
31
Помогите
18.12.14
✎
10:54
|
(29) Спасибо. Это уже серьезно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |