栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

scala的正则使用之Regex

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

scala的正则使用之Regex

最近在数据处理时,用到了正则匹配,在数据 Column 类型处理时用到的是 regexp_extract,其中具体方法,如下

  
  def regexp_extract(e: Column, exp: String, groupIdx: Int): Column = withExpr {
    RegExpExtract(e.expr, lit(exp).expr, lit(groupIdx).expr)
  }

不过,直接使用scala的正则是Regex类

scala.util.matching.Regex

记录下测试方法:

package com.qihoo.icebase.apollo.test

import scala.util.matching.Regex

object TestRegex {
  
  def main(args: Array[String]): Unit = {
    val logInfo = "requestURI:/c?app=2&p=3&did=14 test(Datetime) 0042334&industry=42Ztest(DatetimeCCCD)"

    val regSameTokenProc: Regex = """test(([w:.><-s\/]*))""".r
    println("findFirstIn:------" + regSameTokenProc.findFirstIn(logInfo).getOrElse(""))
    println("findFirstMatchIn.get.group:------" + regSameTokenProc.findFirstMatchIn(logInfo).getOrElse(null))

    val matchResult: Regex.Match = regSameTokenProc.findFirstMatchIn(logInfo).getOrElse(null)
    if (matchResult != null) {
      println("match", matchResult.group(1))
    } else {
      println("match null")
    }

    println("nfindAllIn:")
    regSameTokenProc.findAllIn(logInfo).toList.foreach(println(_))

    println("nfindAllMatchIn:")
    regSameTokenProc.findAllMatchIn(logInfo).foreach(item => println(item.group(1)))


    println("n")
    val date = """(dddd)-(dd)-(dd)""".r
    "2015-05-23" match {
      case date(year, month, day) => println(year, month, day)
    }
    "2014-05-23" match {
      case date(year, month, _*) => println("The year of the date is " + year)
    }
    "2014-05-23" match {
      case date(_*) => println("It is a date")
    }
  }
}

测试结果数据:

findFirstIn:------test(Datetime)
findFirstMatchIn.get.group:------test(Datetime)
(match,Datetime)

findAllIn:
test(Datetime)
test(DatetimeCCCD)

findAllMatchIn:
Datetime
DatetimeCCCD


(2015,05,23)
The year of the date is 2014
It is a date

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/724186.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号