URI提取包括尾随方括号]

时间:2017-08-03 13:57:59

标签: ruby

使用URI.extract识别和处理文本中的网址(本例中的电子邮件)。

一个有点烦人的功能是通过方案提取时

urls = URI.extract(text, ['http', 'https', 'cid','mailto'])

如果它们包含在带有括号的文本中,则其中一些会带有一个尾随方括号。

e.g。

text = "Here's a link [mailto:bob@bob.com]"
urls = URI.extract(text, ['http', 'https', 'cid','mailto'])
=> ["mailto:bob@bob.com]"]

注意尾随右括号,然后破坏我使用的任何url解析器。

有没有明智的方法可以阻止它?

URI.extract的文档有点令人烦恼。

1 个答案:

答案 0 :(得分:1)

也许我错过了什么,但非常简单的文字替换可能会有所帮助?如果您熟悉tr unix工具,那么Ruby也会String#tr

urls.map { |s| s.tr('[]', '') }
=> ["mailto:bob@bob.com"]