使用 Ruby 从文本中提取 URL,同时处理匹配的括号

发布于 2024-09-05 05:26:02 字数 320 浏览 6 评论 0原文

URI.extract 声称可以执行此操作,但它无法处理匹配的括号:

>> URI.extract("text here (http://foo.example.org/bla) and here")
=> ["http://foo.example.org/bla)"]

在不破坏带括号的 URL(用户喜欢使用)的情况下从文本中提取 URL 的最佳方法是什么?

URI.extract claims to do this, but it doesn't handle matched parens:

>> URI.extract("text here (http://foo.example.org/bla) and here")
=> ["http://foo.example.org/bla)"]

What's the best way to extract URLs from text without breaking parenthesized URLs (which users like to use)?

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

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

发布评论

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

评论(3

谎言 2024-09-12 05:26:02

如果 URL 始终由括号绑定,则正则表达式可能是更好的解决方案。

text = "text here (http://foo.example.org/bla) and here and here is (http://yet.another.url/with/parens) and some more text"
text.scan /\(([^\)]*)\)/

If the URLs are always bound by parentheses a Regular Expression might be a better solution.

text = "text here (http://foo.example.org/bla) and here and here is (http://yet.another.url/with/parens) and some more text"
text.scan /\(([^\)]*)\)/
吖咩 2024-09-12 05:26:02

在使用这个之前

>> URI.extract("text here (http://foo.example.org/bla) and here")
=> ["http://foo.example.org/bla)"]

你需要添加这个

require 'uri'

Before using this

>> URI.extract("text here (http://foo.example.org/bla) and here")
=> ["http://foo.example.org/bla)"]

You need to add this

require 'uri'
执手闯天涯 2024-09-12 05:26:02

您可以使用此正则表达式从字符串中提取 URL

"some thing http://abcd.com/ and http://google.com are great".scan(/(?:http|https):\/\/[a-z0-9]+(?:[\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(?:(?::[0-9]{1,5})?\/[^\s]*)?/ix)

You could use this regexp to extract URL's from a string

"some thing http://abcd.com/ and http://google.com are great".scan(/(?:http|https):\/\/[a-z0-9]+(?:[\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(?:(?::[0-9]{1,5})?\/[^\s]*)?/ix)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文