Scala入门之正则表达式
来源:互联网 发布:北通手柄 mac设置 编辑:程序博客网 时间:2024/06/06 00:33
正则表达式
Scala支持通过Regex类的scala.util.matching封装正则表达式。创建一个字符串,并调用r()方法如 val pattern = "Scala".r Scala中字符串隐式转换为一个RichString并调用该方法来获得正则表达式的一个实例。
代码实战
package com.dt.scala.moguyunimport 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]+)""") //常见的几种使用方法// regex1.findAllIn()// regex1.findFirstIn()// regex1.replaceAllIn()// regex1.replaceFirstIn() 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)//找到一个匹配之后就不再找了,返回的是一个Option[String] println("findFirstIn" + r2) println("findAllIn") val r3 = regex1.findAllIn(content)//找到所有匹配的,返回的是一个MatchIterator //遍历时用for循环,不过要使用赋值的方式,将结果赋值给变量 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") } //上面会显示的是 No Match,因为得到的是一个集合,而赋值只能是给一个赋值,所以用下面的方式才不会报错 "9527 scala" match { case regex1(num,str) => println( num + ":" + str) case _ => println(" No Match") } }}结果findFirstInfindFirstInSome(9527 scala)findFirstInSome(9527 scala)findAllInfindAllIn9527:scalafindAllIn007:sparkfindAllIn544:kafka使用match No Match9527:scala
感谢[DT大数据梦工厂]首席专家Spark专家王家林老师的课程分享。更多精彩内容请扫描关注[DT大数据梦工厂]微信公众号DT_Spark
0 0
- Scala入门之正则表达式
- PHP之正则表达式入门
- 正则表达式 入门之道
- JavaScript之正则表达式入门
- 正则表达式之轻松入门
- Python之正则表达式入门
- 0019.scala正则表达式
- Scala正则表达式
- scala Regex 正则表达式
- Scala 正则表达式
- Scala 正则表达式
- scala-正则表达式
- scala 正则表达式
- Scala正则表达式模式
- scala正则表达式
- scala支持正则表达式
- scala之正则表达式(一)基础匹配
- scala基础31-模式匹配之正则表达式
- 二叉树的后序遍历和层次遍历
- linux环境变量 export命令详解
- grunt基本配置(上)
- 经典面试题:求数组的最大子序列和;实现函数 :判断一个自负喜欢是否是另一个字符串旋转所得;杨氏矩阵中查找一个数。
- iOS运行时编程(Runtime Programming)和Java的反射机制对比
- Scala入门之正则表达式
- 最长公共子序列
- malloc和new的区别
- hdu 1754 I Hate It 线段树
- laravel5.2 使用redis
- 表中包含BLOB类型字段时的迁移问题
- 还原二叉树
- Codeforces Round #367 (Div. 2) E. Working routine (十字链表,二维高效交换)
- Southern Subregion Problem L. Stock Trading Robot