1、正则表达式,原生表达
scala> val regex="""([0-9]+)([a-z]+)""".r
regex: scala.util.matching.Regex = ([0-9]+)([a-z]+)
scala> val numPattern="[0-9]+".r
numPattern: scala.util.matching.Regex = [0-9]+
scala> val numberPattern="""\s+[0-9]+\s+""".r
numberPattern: scala.util.matching.Regex = \s+[0-9]+\s+
说明:.r()方法简介:Scala中将字符串转换为正则表达式
You can follow a string with .r
, turning it into a Regex
. E.g."""A\w*""".r
is the regular expression for identifiers starting with A
.def r: Regex = r()
2、模式匹配一
scala> val numPattern="[0-9]+".r
numPattern: scala.util.matching.Regex = [0-9]+
scala> for(m <- numPattern.findAllIn("99345 Scala,22298 Spark")) println(m)
99345
22298
findAllIn(…)函数简介
//findAllIn()方法返回遍历所有匹配项的迭代器
def findAllIn(source: CharSequence) = new Regex.MatchIterator(source, this, groupNames)
3、模式匹配二
//找到首个匹配项
scala> val numPattern="[0-9]+".r
numPattern: scala.util.matching.Regex = [0-9]+
scala> println(numPattern.findFirstIn("88ss Java,333 Spark ,654 Hadoop"))
Some(88)
4、模式匹配三
scala> val numitemPattern="""([0-9]+) ([a-z]+)""".r
numitemPattern: scala.util.matching.Regex = ([0-9]+) ([a-z]+)
scala> val numitemPattern(num, item)="99 hadoop"
num: String = 99
item: String = hadoop
5、模式匹配四
//数字和字母的组合正则表达式
scala> val numitemPattern="""([0-9]+) ([a-z]+)""".r
numitemPattern: scala.util.matching.Regex = ([0-9]+) ([a-z]+)
scala> val line="93459 spark"
line: String = 93459 spark
scala> line match{
| case numitemPattern(num,blog)=> println(num+"\t"+blog)
| case _=>println("hahaha...")
| }
93459 spark
6、模式匹配五
object RegexSyllabus {
def main(args: Array[String]): Unit = {
import scala.util.matching.Regex
val pattern1 = new Regex("(S|s)cala")
val pattern2 = "(S|s)cala".r
val str = "Scala is scalable and cool"
println((pattern2 findAllIn str).mkString(","))
println((pattern1 findAllIn str).mkString(","))
}
}