Scala中的正则表达式使用

开坑,先贴代码,后续增加文字说明

package test
import java.text.SimpleDateFormat
import java.util.Date

import cleaner.enterprise_data_gov.GsxxAllFieldsCleaner
import net.minidev.json.{JSONArray, JSONObject}
import org.apache.spark.sql.SparkSession
import tools.parser.ProvinceParser

import scala.io.Source

/**
  * Created by suyeye on 2019/5/20.
  */
object TestScala {

  private val dateReg = "^\\d{4}-\\d{2}-\\d{2}$".r
  private val dateContainsReg = "\\d{4}-\\d{2}-\\d{2}".r

  def main(args: Array[String]): Unit = {
    
    val pattern = "^\\d{4}-\\d{2}-\\d{2}$".r
    val str = "2019-02-01s"
    println(pattern.findFirstIn(str))
    println((pattern findAllIn str).mkString(","))
    for( i <- pattern.findAllIn(str)){
      println("circle : " + i)
    }

    println(pattern replaceFirstIn(str, "Java"))
    
    println("==================")

    val __periodRegex = "(\\d{4}.\\d{1,2}.\\d{1,2}).*?(\\d{4}.\\d{1,2}.\\d{1,2})".r
    val __periodRegex2 = "(\\d{4}.\\d{1,2}.\\d{1,2})".r

    val strDate = "期间:1998-02-01至——2019.01.01打卡里就打卡上打打看1990-01-01至2011.02.22"
//    val strDate = "期间:1998-02-01至——209.01.01打卡里就打卡上打打看190-01-01至201.02.22"
//    val strDate = "期间:1998-01至——2019.01打卡里就打卡上打打看1990-01至2011.12"
    var periodString = ""
    if (__periodRegex.findFirstIn(strDate).isDefined) {
      periodString = __periodRegex.findFirstIn(strDate).get
    }
    else if (__periodRegex2.findFirstIn(strDate).isDefined) {
      periodString = __periodRegex2.findFirstIn(strDate).get
    }
    println(periodString)
    if (periodString != "") {
      periodString match {
        case __periodRegex(start, end) => {
          println("Start:" + start)
          println("End:" + end)

        }
        case __periodRegex2(start) => {
          println("START:" + start)

        }
        case _ => println("--1")
      }
    } else {
      println("--2")
    }
    

  }
  
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值