使用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