它是一种强大的文本处理工具,通过定义一系列的字符和操作符组合来描述这些模式。简单来说,它就像一种文本模式的"配方"。
package test9
object test9_1 {
//正则表达式
def main(args: Array[String]): Unit = {
//定义一个正则表达式
//1.[ab]:表示匹配一个字符,或者是a或者是b
//2.[a-z]:表示从a到z的26个字母中的任意一个
//3.[A-Z]:表示从A到Z的26个字母中的任意一个
//4.[0-9]:表示从0到10中的任意一个
//4.1[^ab]:表示匹配一个字符,除a,b之外的
//5.{11}:表示前面的字符出现11次
//val reg1 = "[0-9]{11}".r
// val reg1 = "\\d+".r
//脱字符^ 如果在正则的最前面,表示要匹配的内容必须在字符串的开头
//脱字符$ 如果在正则的最后面,表示要匹配的内容必须在字符串的结尾
//8. 英文的 . :表示除了换行之外的其它的任意字符
//9. \d :表示0-9的一个数字
//10. \D::表示除了 \d 之外的字符
//11. \w:[a-zA-Z0-9_]63个字符中的任意一个,"一个字"
//12. \W:表示除了 \w 之外的字符
//13.\s:表示空格
//14.\S:表示除了 \s 之外的字符
//15.量词
//15.1 *:表示 >=0
//15.2 +:表示 >=1
//15.3 ?:表示0次或者1次
//15.4 {11}:恰好11次
// 15.5 {3,5}:表示至少3次,最多5次
//15.6 {3,}:至少3次,最多不限
//贪婪模式
//正则匹配模式默认是贪婪模式
//16 ? 非贪婪模式:加在量词的后面
//在如下字符串查找满足正则表达式要求的内容
// val str = "i am abc"
//找到第一个满足条件的
// val rs = reg1.findFirstIn("i am abc abc")
// if (!rs.isEmpty){
// println("找到的是:",rs.get)
// }
//全部的
val reg1 = "\\d{3,6}?".r
// val reg1 = "[a-z]{3,5}".r
reg1.findAllIn("132396123317").toList.foreach(println)
}
}