一、正则表达式代码实战
package ce.scala.pp输出:
object RegexpressOps_19 {
def main(args: Array[String]): Unit = {
val numPattern = "[0-9]+".r
for(matchString <- numPattern.findAllIn("99345 Scala,22298 Spark")) //findAllIn这个方法返回遍历所有匹配项的迭代器
println(matchString) //输出99345 22298
val numberPattern = """\s+[0-9]+\s+""".r //三个引号的意思是里面的内容都是原生的表达 .r就把引号里的内容变成了正则表达式scala.util.matching.Regex
println(numberPattern.findFirstIn("99ss java, 222 hadoop")) //输出Some( 222 ) 返回匹配正则表达式的第一个Option[String]
val numitemPattern = """([0-9]+) ([a-z]+)""".r
val numitemPattern(num, item) = "99 hadoop"
println(num+" " + item) //输出99 hadoop
}
}
99345
22298
Some( 222 )
99 hadoop
二、与模式匹配结合的Reg代码实战
package ce.scala.pp
object RegexpressOps_19 {
def main(args: Array[String]): Unit = {
val numitemPattern = """([0-9]+) ([a-z]+)""".r //([0-9]+)和([a-z]+)中间的一个空格也要被匹配上
var line = "93459 spark"
line match{
case numitemPattern(num, item) => println(num + " " + item)
case _ => println("ohh")
}
}
}
输出:
93459 spark
若var line = "9345f9 spark",那么就输出ohh
参考资料来源于 DT大数据梦工厂Scala零基础实战经典第19课 由王家林老师讲解