-3

您好,例如有包含内容和网址的文件。我只想要 url 的内容 scala 中有没有检测器。请建议我任何想法。提前致谢

4

3 回答 3

2

对于这个和许多其他问题:您可以只使用Java.

如何检测字符串中是否存在 URL。

import java.net.URL; import util.Try

val text = "abc http://stackoverflow.com stackoverflow.com http blah-blah-blah"

text.split{"""\s+"""}.map{ s => Try { new URL(s) } }.flatMap{ _.toOption }
//Array[java.net.URL] = Array(http://stackoverflow.com)
于 2013-05-23T11:55:35.547 回答
0

关于此主题,请阅读从字符串中提取 URL。不管你想使用哪种编程语言,问题总是一样的。我在 2011 年面临同样的挑战,我按照接受的答案中发布的方式进行(据我所知,稍作修改)。

于 2013-05-23T11:52:14.670 回答
0

我不确定我是否理解正确,但您可以尝试自己编写。看看这个帖子。创建正确的正则表达式后,您可以这样做(代码假定 url 与内容的其余部分位于不同的行中):

val URL = """(http|ftp)://(.*)\.([/a-z]+)""".r
def splitURL(url: String) = url match {
  case URL(protocol, domain, tld) => println((protocol, domain, tld))
  case _ => ; // skip
}

val f = new File("file.txt")
val lines = scala.io.Source.fromFile(f).getLines()

lines foreach (splitURL)

这只是一个提示。您可能需要针对您的特定情况进行更多定制。

编辑:

您可能需要更高级的正则表达式。看看记者的回答

于 2013-05-23T11:53:47.070 回答