【发布时间】:2011-12-07 17:50:13
【问题描述】:
我正在尝试从字符串中提取 url,它们不是标准化的,所以有些在 href 标记中,而另一些则在它们自己的内部。
我还需要按类型对它们进行排序,例如以下字符串:
var txt1: String = "Some text! <a href="http://www.google.com/test.mp3">MP3</a>"
var txt2: String = "Some text! <a href="http://www.google.com/test.jpg">IMG</a>"
var txt3: String = "Some more! <a href="http://www.google.com/">Link!</a>"
所以这些字符串都是串联的并包含 3 个 url,我正在寻找类似以下内容的内容:
var result: List = List(
"mp3" -> List("http://www.google.com/test.mp3"),
"img" -> List("http://www.google.com/test.jpg"),
"url" -> List("http://www.google.com/")
)
我已经研究过正则表达式,但只是在没有定义类型的情况下提取了 href,而且这也不会在标签之外自行检索 url
val hrefRegex = new Regex("""\<a.*?href=\"(http:.*?)\".*?\>.*?\</a>""");
val hrefs:List[String]= hrefRegex.findAllIn(txt1.mkString).toList;
非常感谢任何帮助,在此先感谢:)
【问题讨论】:
-
你应该使用像 jsoup 这样的 HTML 解析器。
-
谢谢Kim,你知道有什么文章可以让我开始吗?依赖项、导入等?
标签: regex url scala hyperlink lift