自学内容网 自学内容网

scala中的正则表达式案例

一、使用正则表达式验证合法用户名

package test
// 验证用户名是否合法
// 规则:
// 1.长度在6-12之间
// 2.不能数字开头
// 3.只能包含数字1,大小写字母,下划线
object test {
    def main(args: Array[String]): Unit = {
        val name1 = "1admin" // 不合法,是数字开头
        val name2 = "admin123" // 合法
        val name3 = "admin" // 不合法,长度不够
        val name4 = "ad_123Ab" // 合法
        val name5 = "admin123!" // 不合法,!是不允许的

        // 通过正则表达式来判断
        val reg = "[a-zA-Z_]\\w{6,12}".r
        println(reg.matches(name1)) // matches对字符串做验证,返回boolean值
        println(reg.matches(name2)) // matches对字符串做验证,返回boolean值
        println(reg.matches(name3)) // matches对字符串做验证,返回boolean值
        println(reg.matches(name4)) // matches对字符串做验证,返回boolean值
        println(reg.matches(name5)) // matches对字符串做验证,返回boolean值
    }
}

二、将字符串中的手机号打码

package test37
// 任务:把字符串中的手机号打码:类似于:138****5678
// 正则表达式的应用场景
// 查找,验证,替换
object test2 {
    def main(args: Array[String]): Unit = {
        var str = "张先生,手机号:13812345678 13612345454 寝室号:1345-01 你买的 xxx 到了"
        // var str = "张先生,ID:429005200001231156"
        // var str = "张先生,ID: 4290052000------56"
        // 开始你的代码
        // 138    1234   5678
//     val reg = "1[3-9]\\d{9}".r
        // () 是分组,它不会影响正则表达式的查询结果,但是,它会把分组找到的内容单独保存在group中。
        val reg = "(1[3-9]\\d)(\\d{4})(\d{4})".r
        // reg.replaceAllIn的功能:在目标字符串str中,用1正则表达式reg去查找,找到之后,用 箭头函数 的返回值来替换。
        // m 就是正则表达式找到的内容
        // 如果正则表达式中1有(),则 可以通过m.group来找到对应的分组
        val newStr = reg,replaceAllIn(str, (m)->{
            println(s"第一组:${m.group(1)}")
            println(s"第二组:${m.group(2)}")
            println(s"第三组:${m.group(3)}")
            println("-"*40)
        })
        println(newStr)
        // "张先生,手机号:138****5678 你买的 xxx 到了"
    }
}

三、将上列ID转换为下列加密后的ID 

package test37

// 案例,把字符串1中的身份证号打码
object test3 {
    def main(args: Array[String]): Unit = {
        val str = "张先生,ID:429005200001231156"
        val reg = "(\\d{10})(\\d{6})(\\d[\\dX])".r
        // reg.findAllIn(str).foreach(println)
        val newStr = reg.replaceAllIn(str, m => m.group(1) + "-------" + m.group(3))
//            println(m.group(1))
//            println(m.group(2))
//            println(m.group(3))
        println(newStr)
    }
}


原文地址:https://blog.csdn.net/2402_83590031/article/details/144347815

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