Поиск ссылок в текстовой строке - PullRequest
3 голосов
/ 20 января 2010

Я нахожусь в ситуации, когда у меня есть строка необработанного текста, где я хочу найти все ссылки (начиная с Http://) и поместить <a href="thelink"> перед началом ссылки, а затем </a> послессылка на сайт.Проблема в том, что я не знаю, когда ссылка заканчивается.Т.е.:

(http://www.mylink.com)

В приведенном выше примере я могу найти начало ссылки: http://, но не знаю, когдассылка заканчивается, поэтому потребуется ).

Может кто-нибудь пролить свет на это? Должен ли я использовать какой-то шаблон RegEx?

Заранее большое спасибо.

Всего наилучшего,

Бо

1 Ответ

3 голосов
/ 20 января 2010

Согласно RegexBuddy используйте это как свое регулярное выражение

\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[A-Z0-9+&@#/%=~_|]

и это как ваш синтаксис замены

<a href="\0">\0</a>

Логика состоит в том, чтобы искать все допустимые символы URL и останавливаться, как только вы встретите недопустимый символ, например пробел или правую скобку.

Если вы еще не опробовали их инструмент, я настоятельно рекомендую его. Это отличный инструмент обучения, поскольку он анализирует регулярные выражения и конвертирует их в простой английский.

Он также поставляется с огромной библиотекой полезных выражений, таких как этот, и это довольно дешево.

...