如何在scala中提取子串

时间:2017-10-11 01:35:19

标签: scala

这是我用来尝试解决问题的代码:

Source.fromFile(file).getLines()
  .foreach{ line => 
    line.split(" - - | \"POST | HTTP/1.1\" ")
      .foreach(word => println(word))
  }

这是我的三个字符串

192.168.9.230 - - [24/Apr/2017:08:58:06 +0800] "POST /dvr-gateway/api/genl/user/login HTTP/1.1" 200 211
192.168.32.145 - - [24/Apr/2017:08:58:07 +0800] "POST /dvr-gateway/api/genl/org/find HTTP/1.1" 200 126
192.168.2.54 - - [24/Apr/2017:08:58:52 +0800] "POST /dvr-gateway/api/genl/user/login HTTP/1.1" 200 211

我只想要文件的IP地址和地址。 例如,我希望它打印到:

192.168.9.230
/dvr-gateway/api/genl/user/login

1 个答案:

答案 0 :(得分:0)

解决此问题的最简单方法是将split的结果分配给变量,并保留第一个和第三个元素。

Source.fromFile(file).getLines().foreach{ line => 
  val splits = line.split(" - - | \"POST | HTTP/1.1\" ")
  List(splits(0), splits(2)).foreach(word => println(word))
}