Scala中的正则表达式使用

it2022-05-05  133

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

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)