Scala如何使用正则表达式(代码实例)

正则表达式解释了一种用于匹配一系列输入数据的通用模式,因此它对许多编程语言中的模式匹配很有帮助。在Scala中,正则表达式通常被称为Scala Regex。
Regex是从scala.util.matching包中导入的类。正则表达式,它广泛应用于搜索和文本解析。为了将字符串转换为正则表达式,我们需要使用r()方法来处理指定的字符串。
例子

// Scala program for Regular // Expressions// Creating object object GfG {// Main method def main(args : Array[String]) {// Applying r() method val portal = "lsbin" .r val CS = "lsbin is a CS portal."// Displays the first match println(portal findFirstIn CS) } }

【Scala如何使用正则表达式(代码实例)】输出如下:
Some(lsbin)

在这里, 我们已经调用了方法r()在陈述的字符串上获取一个实例正则表达式类, 以创建模式。方法findFirstIn()在上面的代码中使用来查找正则表达式的第一个匹配项。为了找到表达式中所有匹配的单词, 请使用findAllIn()方法。
范例:
// Scala program for Regular // Expressions import scala.util.matching.Regex// Creating object object GfG {// Main method def main(args : Array[String]) {// Applying Regex class val x = new Regex( "Nidhi" ) val myself = "My name is Nidhi Singh."// replaces first match with the // String given below println(x replaceFirstIn(myself, "Rahul" )) } }

输出如下:
My name is Rahul Singh.

我们甚至可以使用Regex的构造函数代替r()方法。这里, replaceFirstIn()方法用于替换指定字符串的第一个匹配项, 我们甚至可以使用替换所有匹配项replaceAllIn()方法。
范例:
// Scala program for Regular // Expressions import scala.util.matching.Regex// Creating object object GfG {// Main method def main(args : Array[String]) {// Applying Regex class val Geeks = new Regex( "(G|g)fG" ) val y = "GfG is a CS portal. I like gfG"// Displays all the matches separated // by a separator println((Geeks findAllIn y).mkString( ", " )) } }

输出如下:
GfG, gfG

在这里, 我们使用了mkString连接所有匹配项的方法, 用分隔符和管道分隔(|)在上面的代码中用于在给定的字符串中搜索大写和小写。因此, 此处返回指定字符串的大写和小写字母。
Scala正则表达式的语法
Java从Perl继承了一些功能, Scala从Java继承了Scala regex的语法。以下是元字符语法的列表:
子表达式 匹配
^ 它用于匹配行的起点。
$ 用于匹配行的终点。
. 它用于匹配除换行符以外的任何一个字符。
[…] 它用于匹配方括号内的任何一个字符。
[^…] 它用于匹配不在括号中的任何一个字符。
\\A 它用于匹配完整字符串的起点。
\\z 它用于匹配完整字符串的终止点。
\\Z 它用于匹配除新行(如果存在)之外的整个字符串的结尾。
re* 它用于匹配前述表达式的零个或多个外观。
re+ 它用于匹配一个或多个上述表达式。
re? 它用于匹配前述表达式的零个或一个外观。
re{n} 它用于精确匹配上述表达式的n个外观。
re{n, } 它用于匹配上述表达式的n个或更多个外观。
re{n, m} 它用于匹配前述表达式的至少n个和最多m个外观。
q|r 它用于匹配q或r。
(re) 它用于对正则表达式进行分组并重新收集匹配的文本。
(?:re) 它还会对正则表达式进行分组, 但不会重新收集匹配的文本。
(?> re) 它用于在没有回溯的情况下匹配自力更生的模式。
\\w 它用于匹配单词的字符。
\\W 它用于匹配非单词的字符。
\\s 它用于匹配类似于[\ t \ n \ r \ f]的空格。
\\S 它用于匹配非空格。
\\d 它用于匹配数字, 即[0-9]。
\\D 它用于匹配非数字。
\\G 它用于匹配最末端匹配结束的点。
\\n 用于向后引用以占用组号n。
\\b 当它在方括号中时, 它用于匹配单词frontiers, 而在方括号中时, 它用于匹配退格键。
\\B 它用于匹配非单词边界。
\\n, \\t等 它用于匹配换行符, 制表符等。
\\Q 它用于转义(引用)每个字符, 直到\\E。
\\E 它用在以\\Q开头的结尾引用中。

    推荐阅读