正则表达式
Scala支持通过Regex类的scala.util.matching封装正则表达式。
创建一个字符串,并调用r()方法如 val pattern = "Scala".r
Scala中字符串隐式转换为一个RichString并调用该方法来获得正则表达式的一个实例。
代码实战
package com.dt.scala.moguyun
import scala.util.matching.Regex
/**
* 正则表达式的常用用法
* Created by hlf on 2016/8/15.
*/
object HelloRegex {
def main(args: Array[String]) {
val regex1 =
"""([0-9]+) ([a-z]+)""".r
val regex2 =
new Regex(
"""([0-9]+) ([a-z]+)""")
val content =
"9527 scala 007 spark 0359 5718 544 kafka"
println(
"findFirstIn")
val r1 =regex1.findFirstIn(content)
val r2 =regex1.findFirstIn(content)
println(
"findFirstIn" + r1)
println(
"findFirstIn" + r2)
println(
"findAllIn")
val r3 = regex1.findAllIn(content)
for(regex1(num,str)<-r3) println(
"findAllIn" + num +
":" + str)
println(
"使用match")
content
match {
case regex1(num,str) => println(
"findAllIn" + num +
":" + str)
case _ => println(
" No Match")
}
"9527 scala" match {
case regex1(num,str) => println( num +
":" + str)
case _ => println(
" No Match")
}
}
}
结果
findFirstIn
findFirstInSome(
9527 scala)
findFirstInSome(
9527 scala)
findAllIn
findAllIn9527:scala
findAllIn007:spark
findAllIn544:kafka
使用
match
No Match
9527:scala
感谢[DT大数据梦工厂]首席专家Spark专家王家林老师的课程分享。更多精彩内容请扫描关注[DT大数据梦工厂]微信公众号DT_Spark
转载请注明原文地址: https://ju.6miu.com/read-1304723.html