使用URI.extract识别和处理文本内的URL(本例中为电子邮件)。URI提取包括尾随方括号]
稍微恼人的特点是,通过方案
urls = URI.extract(text, ['http', 'https', 'cid','mailto'])
提取时,他们中的一些与尾随方括号回来,如果他们包括在与周围括号中的文字。
例如
text = "Here's a link [mailto:[email protected]]"
urls = URI.extract(text, ['http', 'https', 'cid','mailto'])
=> ["mailto:[email protected]]"]
注意到拖尾的右括号会破坏我使用的任何url解析器。
有没有一种明智的方法来阻止它?
URI.extract的文档有点令人讨厌。
是否有使用url.chomp( “]”)什么危险?我敢肯定,这不应该在URL中,但总是有一些边缘情况下咬你在流浪汉 – Carpela
从技术上来说,括号允许在一个URI中,所以'extract'没有发生故障。 (事实上,Rails使用它们很多,例如'var [] =')。但是,'mailto:'方案在不同的RFC中定义,并且可能不允许它们在那里。 'URI'可能不那么复杂。 –
有趣的是,我只倾向于在mailto:和cid:type链接中发现错误。也许这可以解释它。 – Carpela