自学内容网 自学内容网

正则表达式


object Test51 {
  //正则表达式
  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="\\S".r
    //6.脱字符^ 如果在正则的最前面,表示,要匹配的内容必须在字符串的开头
    //7.脱字符$ 如果在正则的最前面,表示,要匹配的内容必须在字符串的结尾
    //8.英文的.:表示除换行之外的其他的任意一个字符
    //9.\d:表示0-9的一个数字
    //10.\D:表示 除\d 之外的字符
    //11.\w:[a-zAz-Z0-9]63个字符串任意一个."一个字"
    //12.\W:表示 除\w之外的字符
    //13.\s:表示 空格
    //14.\S:表示除\s之外的字符
    //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? 非贪婪模式 加在量词的后面 尽可能少匹配
    //17.-^ 匹配首航
    //18.-$ 匹配尾行
    //贪婪模式
    //正则匹配默认是贪婪模式的
    //在如下字符串中 查找 满足正则表达式要求的内容

    //val str="i am abc"
//    //找到第一个满足条件的
//    val rs=reg1.findFirstMatchIn("i am abc abc")
//    if(!rs.isEmpty){
//      println("找到的是:",rs.get)
//    }
    //正则查找:找全部的手机号
    //规则:
    //1.11位数字,
    //2.第一个数字是1.
    //3.第二个数字是3-9的数
//    val reg1="1[3-9]\\d{9}".r
//    reg1.findAllIn("2342354  and 123424235 13543456566 are phone numders").toList.foreach(println)
//    //验证:给定的字符串是否符合正则表达式的要求
//    //用户名的规则
//    //1.长度在6-12位
//    //2.只能以字母开头
//    //3.只能包含如下4种:字母,数字,下划线,#
//    val name1="_56!!@@@.com"//不符合
//    val name2="abc"//不符合
//    val name3="admin123#"
//    val reg2="[a-zA-Z][a-zA-Z0-9_#]{5,11}".r
//    //matches:验证字符串是否满足
//    println(reg2.matches(name1))
//    println(reg2.matches(name2))
//    println(reg2.matches(name3))
//    //println(reg2.matches("a132332323123123"))
    //应用:替换
    val reg1="(1[3-9]\\d)(\\d{3})(\\d{5})".r
    val str="1234 12313214125 and 123124443 are phone numbers"
    val newStr=reg1.replaceAllIn(str,m =>{
      println(m.group(1))
      println(m.group(2))
      println(m.group(3))

      m.group(1)+"xxxx"+m.group(3)
    })
    println(newStr)

  }

}

 


原文地址:https://blog.csdn.net/2301_81908848/article/details/144217332

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!