一天学完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

相关文章
|
2月前
|
IDE Java 程序员
学生邮箱白嫖/免费安装JetBrains全家桶(IDEA/pycharm等) —— 保姆级教程
本文提供了如何使用学生邮箱免费获取并安装JetBrains全家桶(包括IDEA、PyCharm等)的详细教程,涵盖了学生认证、软件下载、安装及常见问题的解决方法。
486 0
学生邮箱白嫖/免费安装JetBrains全家桶(IDEA/pycharm等) —— 保姆级教程
|
4月前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
2月前
|
Java
IDEA的fxml打开Scene Builder后空白! Scene Builder下载依赖后还是空白不显示 无论如何都不显示,网上的教程试过来了遍还是不显示
本文提供了三种方法来解决IDEA中fxml文件在Scene Builder中打开后显示空白的问题:检查JavaFX是否安装、切换IDEA版本、下载Scene Builder插件。
209 1
|
2月前
|
Oracle IDE Java
IDEA安装教程配置java环境(超详细)
IDEA安装教程配置java环境(超详细)
1025 0
|
4月前
|
前端开发 Java Maven
【前端学java】全网最详细的maven安装与IDEA集成教程!
【8月更文挑战第12天】全网最详细的maven安装与IDEA集成教程!
108 2
【前端学java】全网最详细的maven安装与IDEA集成教程!
|
5月前
|
分布式计算 Java Serverless
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
本文以 ECS 连接 EMR Serverless Spark 为例,介绍如何通过 EMR Serverless spark-submit 命令行工具进行 Spark 任务开发。
426 7
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
|
5月前
|
分布式计算 运维 Serverless
EMR Serverless Spark 实践教程 | 通过 EMR Serverless Spark 提交 PySpark 流任务
在大数据快速发展的时代,流式处理技术对于实时数据分析至关重要。EMR Serverless Spark提供了一个强大而可扩展的平台,它不仅简化了实时数据处理流程,还免去了服务器管理的烦恼,提升了效率。本文将指导您使用EMR Serverless Spark提交PySpark流式任务,展示其在流处理方面的易用性和可运维性。
284 7
EMR Serverless Spark 实践教程 | 通过 EMR Serverless Spark 提交 PySpark 流任务
|
4月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
218 0
|
4月前
|
分布式计算 Java Linux
【Deepin 20系统】Linux 系统安装Spark教程及使用
在Deepin 20系统上安装和使用Apache Spark的详细教程,包括安装Java JDK、下载和解压Spark安装包、配置环境变量和Spark配置文件、启动和关闭Spark集群的步骤,以及使用Spark Shell和PySpark进行简单操作的示例。
72 0
IDEA2019中文版软件下载和安装教程|兼容WIN10
IDEA2019中文版软件下载和安装教程|兼容WIN10