一天学完spark的Scala基础语法教程十一、正则表达式(idea版本)

简介: 一天学完spark的Scala基础语法教程十一、正则表达式(idea版本)

创建测试类【day1/demo11.saclc】,文件类型【Object】

image.png

image.png

Scala 正则表达式

Scala 通过 scala.util.matching 包中的 Regex 类来支持正则表达式。以下实例演示了使用正则表达式查找单词 Scala :


基础案例

package day1
object demo11 {
  def main(args: Array[String]) {
    val pattern = "梦想".r
    val str = "所有奋斗者都会有梦想,人会放弃,但是梦想不会终结。"
    println(pattern findFirstIn str)
  }
}

实例中使用 String 类的【r】方法构造了一个Regex对象。


然后使用 findFirstIn 方法找到首个匹配项。

image.png



查询所有

如果需要查看所有的匹配项可以使用 findAllIn 方法。


你可以使用 mkString( ) 方法来连接正则表达式匹配结果的字符串,并可以使用管道(|)来设置不同的模式:


package day1
import scala.util.matching.Regex
object demo11 {
  def main(args: Array[String]) {
    val pattern = new Regex("(梦|萌)想")
    val str = "所有奋斗者都会有梦想/萌想,人会放弃,但是梦想不会终结。"
    var arr=pattern findAllIn str;
    while (arr.hasNext){
      println(arr.next())
    }
  }
}

image.png


替换

如果你需要将匹配的文本替换为指定的关键词,可以使用 replaceFirstIn( ) 方法来替换第一个匹配项,使用 replaceAllIn( ) 方法替换所有匹配项,实例如下:


package day1
import scala.util.matching.Regex
object demo11 {
  def main(args: Array[String]) {
    val pattern = new Regex("(梦|萌)想")
    val str = "所有奋斗者都会有梦想/萌想,人会放弃,但是梦想不会终结。"
    var info=pattern replaceAllIn(str,"梦想");
    print(info)
  }
}

image.png

正则表达式

Scala 的正则表达式继承了 Java 的语法规则,Java 则大部分使用了 Perl 语言的规则。


下表我们给出了常用的一些正则表达式规则:


image.png

image.png

正则表达式实例

image.png

image.png

注意上表中的每个字符使用了两个反斜线。这是因为在 Java 和 Scala 中字符串中的反斜线是转义字符。所以如果你要输出 \,你需要在字符串中写成 \\ 来获取一个反斜线。查看以下实例:

错误使用:

image.png

正确使用:


package day1
import scala.util.matching.Regex
object demo11 {
  def main(args: Array[String]) {
    val pattern = new Regex("超级赛亚人\\d")
    val str = "孙悟空会变身超级赛亚人1,超级赛亚人2,超级赛亚人3,以及超级赛亚人蓝"
    println((pattern findAllIn str).mkString(","))
  }
}


image.png

目录
打赏
0
0
0
0
114
分享
相关文章
|
4月前
|
Scala 教程
Scala 教程
61 2
|
10月前
|
scala的基础语法
scala的基础语法
83 3
Scala 多版本下载指南
Scala 多版本下载指南
437 1
|
10月前
|
IDEA上的Scala环境搭建
本文指导如何搭建Scala开发环境。首先,安装Scala编译器`scala-2.12.10.msi`,通过DOS窗口验证安装成功。然后,在IDEA中,安装Scala插件,创建Maven工程,删除默认包,新建Scala源码包,并在其中创建Scala Object类。接着,配置项目结构,添加Scala SDK,确保Maven、Language Level和Compiler的bytecode版本设置正确。最后,编写并测试基本的Scala代码。
504 2
IDEA上的Scala环境搭建
正则表达式教程:从入门到实战应用
正则表达式教程:从入门到实战应用
正则表达式教程:从入门到实战应用
正则表达式教程:从入门到实战应用
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
99 0
Scala +Spark+Hadoop+Zookeeper+IDEA实现WordCount单词计数(简单实例-上)
Scala +Spark+Hadoop+Zookeeper+IDEA实现WordCount单词计数(简单实例-上)
75 0
|
9月前
|
Intellij IDEA+Maven+Scala第一个程序
Intellij IDEA+Maven+Scala第一个程序
147 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等