码迷,mamicode.com
首页 > 其他好文 > 详细

scala知识点(二)

时间:2016-04-17 19:16:59      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

1.正则表达式:

与正则表达式相关的类是scala.util.matching.Regex类,要构造一个Regex对象,使用String类的r方法即可,如果正则表达式中包含反斜杠或引号之类的需要转义的字符,那么最好是使用原始(raw)字符串,以三个”号包围

val apacheLogRegex =
      """^([\d.]+) (\S+) (\S+) \[([\w\d:/]+\s[+\-]\d{4})\] "(.+?)" (\d{3}) ([\d\-]+) "([^"]+)" "([^"]+)".*""".r
def extractKey(line: String): (String, String, String) = {
      apacheLogRegex.findFirstIn(line) match {
        case Some(apacheLogRegex(ip, _, user, dateTime, query, status, bytes, referer, ua)) =>
          if (user != "\"-\"") (ip, user, query)
          else (null, null, null)
        case _ => (null, null, null)
      }
    }

apacheLogRegex.findFirstIn(line)    // 在line中找到首个匹配apacheLogRegex的匹配项

findPrefixOf()方法检查某个字符串的开始部分是否能够匹配。

参考来源

scala知识点(二)

标签:

原文地址:http://www.cnblogs.com/nolonely/p/5401799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!