黑猴子的家:Scala 正则表达式

1、正则表达式,原生表达
scala> val regex="""([0-9]+)([a-z]+)""".r
regex: scala.util.matching.Regex = ([0-9]+)([a-z]+)

scala> val numPattern="[0-9]+".r
numPattern: scala.util.matching.Regex = [0-9]+

scala> val numberPattern="""\s+[0-9]+\s+""".r
numberPattern: scala.util.matching.Regex = \s+[0-9]+\s+

说明:.r()方法简介:Scala中将字符串转换为正则表达式
You can follow a string with .r, turning it into a Regex. E.g.
"""A\w*""".r is the regular expression for identifiers starting with A.
def r: Regex = r()

2、模式匹配一
scala> val numPattern="[0-9]+".r
numPattern: scala.util.matching.Regex = [0-9]+

scala> for(m <- numPattern.findAllIn("99345 Scala,22298 Spark")) println(m)
99345
22298

findAllIn(…)函数简介
//findAllIn()方法返回遍历所有匹配项的迭代器
def findAllIn(source: CharSequence) = new Regex.MatchIterator(source, this, groupNames)

3、模式匹配二

//找到首个匹配项

scala> val numPattern="[0-9]+".r
numPattern: scala.util.matching.Regex = [0-9]+

scala> println(numPattern.findFirstIn("88ss Java,333 Spark ,654 Hadoop"))
Some(88)
4、模式匹配三
scala> val numitemPattern="""([0-9]+) ([a-z]+)""".r
numitemPattern: scala.util.matching.Regex = ([0-9]+) ([a-z]+)

scala> val numitemPattern(num, item)="99 hadoop"
num: String = 99
item: String = hadoop
5、模式匹配四

//数字和字母的组合正则表达式

scala> val numitemPattern="""([0-9]+) ([a-z]+)""".r
numitemPattern: scala.util.matching.Regex = ([0-9]+) ([a-z]+)

scala> val line="93459 spark"
line: String = 93459 spark

scala> line match{
     | case numitemPattern(num,blog)=> println(num+"\t"+blog)
     | case _=>println("hahaha...")
     | }
93459   spark
6、模式匹配五
object RegexSyllabus {
  def main(args: Array[String]): Unit = {

    import scala.util.matching.Regex

    val pattern1 = new Regex("(S|s)cala")
    val pattern2 = "(S|s)cala".r
    val str = "Scala is scalable and cool"
    println((pattern2 findAllIn str).mkString(","))
    println((pattern1 findAllIn str).mkString(","))

  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值