Удаление URL из текста с помощью ruby - PullRequest
5 голосов
/ 16 июня 2011

Учитывая текст, я хочу удалить часть URL и оставить другой текст.

Пример:

'bla bla bla... bla bla bla... http://bit.ly/someuri bla bla bla...'

, чтобы стать

'bla bla bla... bla bla bla... bla bla bla...'

Есть лиruby встроить метод, чтобы сделать это эффективно?

Ответы [ 2 ]

9 голосов
/ 16 июня 2011

Попробуйте с регулярным выражением:

(?:f|ht)tps?:\/[^\s]+
4 голосов
/ 16 июня 2011

Я только что нашел Регулярное выражение - замените слово, кроме как внутри URL / URI и измените код так:

URI_REGEX = %r"((?:(?:[^ :/?#]+):)(?://(?:[^ /?#]*))(?:[^ ?#]*)(?:\?(?:[^ #]*))?(?:#(?:[^ ]*))?)"

def remove_uris(text)
  text.split(URI_REGEX).collect do |s|
    unless s =~ URI_REGEX
      s
    end
  end.join
end

Я тестирую его в консоли rails, и он работает как положено:

remove_uris('bla bla bla... bla bla bla... http://bit.ly/someuri bla bla bla...')
=> "bla bla bla... bla bla bla...  bla bla bla..."

Если у кого-то есть лучшее / эффективное решение, я проголосую или приму его. Спасибо.

...