使用 ruby​​ 从文本中删除 url

发布于 2024-11-15 16:57:24 字数 261 浏览 5 评论 0原文

给定一个文本,我想删除 url 部分并保留其他文本。

示例:

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

成为

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

是否有任何 ruby​​ 内置方法可以有效地做到这一点?

Given a text, I want to remove the url part and leave other text.

Example:

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

to become

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

Is there any ruby build in method to do this efficiently?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

注定孤独终老 2024-11-22 16:57:24

尝试使用正则表达式:

(?:f|ht)tps?:\/[^\s]+

Try with regex:

(?:f|ht)tps?:\/[^\s]+
巴黎盛开的樱花 2024-11-22 16:57:24

我刚刚发现 正则表达式 - 替换除 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..."

如果有人有更好/有效的解决方案,我将投票或接受它。谢谢。

I just found Regular Expression - replace word except within a URL/URI and modify the code to be like this:

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

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

I test it in rails console and it worked as expected:

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

If anyone have better / effective solution, I will vote up or accept it. Thanks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文