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

相关文章
|
22天前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
31 0
|
22天前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
59 0
|
22天前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
23 0
|
22天前
|
缓存 分布式计算 大数据
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(一)
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(一)
30 0
|
6月前
|
Python
Python 内置正则表达式库re的使用
正则表达式是记录文本规则的代码,用于查找和处理符合特定规则的字符串。在Python中,常通过原生字符串`r'string'`表示。使用`re.compile()`创建正则对象,便于多次使用。匹配字符串有`match()`(从开头匹配)、`search()`(搜索首个匹配)和`findall()`(找所有匹配)。替换字符串用`sub()`,分割字符串则用`split()`。
64 3
|
5月前
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
49 2
|
5月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
5月前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
|
5月前
|
Python
Python使用正则表达式分割字符串
在Python中,你可以使用re模块的split()函数来根据正则表达式分割字符串。这个函数的工作原理类似于Python内置的str.split()方法,但它允许你使用正则表达式作为分隔符。
|
5月前
|
Python
Python中re模块的正则表达式
【6月更文挑战第2天】了解Python的re模块,它是处理正则表达式的核心工具。正则表达式用于在文本中查找特定模式。本文讨论了re模块的用法和技巧,包括导入模块、匹配、分组、替换文本、编译正则表达式以及使用预定义字符类、量词、锚点等高级功能。通过实例展示了如何在Python中执行这些操作,帮助提升文本处理能力。掌握这些技巧将使你更有效地利用正则表达式解决字符串处理问题。
47 2