美文网首页
Scala超好用的正则(2)

Scala超好用的正则(2)

作者: bin丶 | 来源:发表于2019-12-18 11:13 被阅读0次

这个是官方文档上的例子,搬运一下

链接放这了,想要学习的小伙伴可以看一下 https://www.scala-lang.org/files/archive/nightly/2.11.x/api/2.11.x/#scala.util.matching.Regex

    val re = """(\d{4})-(\d{2})-(\d{2})""".r
    val dates = "Important dates in history: 2004-01-20, 1958-09-05, 2010-10-06, 2011-07-15"
    val firstDate = re findFirstIn dates getOrElse "No date found."
    // 上面的表达形式与下面的写法效果一致
    // val firstDate = re.findFirstIn(dates).getOrElse("No date found.")
    println(firstDate)
  • findFirstIn 返回匹配中的第一个值,getOrElse-当没有匹配到值返回给定的默认值,这里是 “No date found”
  • 输出结果
image.png

如果想取出字符串中所有的年份呢?(瞅瞅下面)

    val firstYear = for (m <- re findAllMatchIn dates) yield m group 1
    println(firstYear.toBuffer)
  • group(1) 取到的是正则中的第一组,也就是(\d{4}),也就是年份
  • yield 列表推导式(雾,我也不知道scala里面怎么叫) 返回的是一个可迭代器
  • 输出结果如下


    image.png

相关文章

网友评论

      本文标题:Scala超好用的正则(2)

      本文链接:https://www.haomeiwen.com/subject/dfgynctx.html