Регулярное выражение для поиска URL, но не включает пунктуацию ПОСЛЕ URL - PullRequest
0 голосов
/ 27 июня 2011

Пример: "Мой сайт http://www.abcd.com,, а ваш http://www.def.ghi/jkl. Является ли Фред https://www.xyz.com? Или http://www.xxx.com? Abc = def ? (Я думал, что его сайт был http://www.mmm.com),, но, очевидно, это не так. "

Это должно извлечь

http://www.abcd.com http://www.def.ghi/jkl https://www.xyz.comhttp://www.xxx.com? Abc = def http://www.mmm.com

Примечания: следует учитывать, что любая пунктуация после URL НЕ является частью URL, например, запятая после http://www.abcd.com,не является частью URL-адреса. Это включает в себя завершающие вопросительные знаки, которые, как я понимаю, на самом деле МОГУТ быть частью URL-адреса. Конечно, если после вопросительного знака следуют данные строки запроса, его СЛЕДУЕТ считать частью URL-адреса. Обратите внимание, что URL-адресаможет сопровождаться несколькими знаками препинания, как в случае (Ваш URL http://abcd.com)?

URL-адреса (и их конечная пунктуация, если есть) всегда будут сопровождаться пробелом, символом новой строки / возврата- или они будут концом тестируемой строки.

Символу будет предшествовать символ пробела или,возможно, открытая скобка или скобки, как в «Пожалуйста, посетите мой сайт (http://www.abcd.com)." Или они появятся в начале строки.

Это регулярное выражение должно работать для http, https и ftp.

Это для проекта Actionscript.Я считаю, что Actionscript использует тот же движок регулярных выражений, что и Javascript.

Спасибо!

Ответы [ 2 ]

1 голос
/ 27 июня 2011

Посмотрите здесь: http://www.regexguru.com/2008/11/detecting-urls-in-a-block-of-text/

РЕДАКТИРОВАТЬ: shanethehat и divillysausages также упомянул эту ссылку: http://gskinner.com/RegExr/, которую я раньше не видел и какие функции онлайн-оценки (другими словами,Вы можете настроить свое регулярное выражение, не запуская свою IDE для кодирования (это здорово).Спасибо!

0 голосов
/ 21 февраля 2014

Во-первых, использование собственного регулярного выражения для анализа URL - это ужасная идея .Вы должны представить, что это достаточно распространенная проблема, которую кто-то написал, отладил и протестировал библиотеку для нее, согласно RFC .Существует множество граничных случаев, когда речь идет о парсинге URL: международные доменные имена , фактические (.museum) и несуществующие (.jpg) URL, странная пунктуация, включая круглые скобки , пунктуацияв конце URL-адреса и т. д.

Я посмотрел тонну библиотек, и у них у всех есть свои недостатки.См. Сравнение библиотек синтаксического анализа URL JavaScript здесь .

Если вам нужно регулярное выражение, оно в Component достаточно всеобъемлющее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...