scala--正则表达式-★★

正则表达式-★★

Regex类

  • scala中提供了Regex类来定义正则表达式
    • 要构造一个Regex对象可以使用new Regex的方式,或者直接使用String类的r方法即可
    • val regex1 = new Regex(""“正则表达式”"")
    • val regex2 = “”“正则表达式”"".r //建议使用三个双引号来表示正则表达式,不然就得对正则中的反斜杠来进行转义
  • findAllMatchIn方法
    • 使用findAllMatchIn方法可以获取到所有正则匹配到的字符串
  • 正则本身是很庞杂的内容,有很多的规则,这里了解即可
  • 学的是API,而不是如何编写正则表达式
package cn.hanjiaxiaozhi.regex
​
import scala.util.matching.Regex
​
/**
 * Author hanjiaxiaozhi
 * Date 2020/7/19 9:32
 * Desc 演示Scala的正则表达式语法
 */
object RegexDemo {
  def main(args: Array[String]): Unit = {
    //定义一个用来匹配邮箱的正则表达式
    //val regex: Regex = new Regex(".+@.+\..+")//格式一
    //val regex: Regex = """.+@.+\..+""".r //格式二
    val regex: Regex = """^\w+@[a-z0-9]+\.[a-z]+$""".r //格式二//准备一些带验证的邮箱
    val emails = List("1234aa@qq.com", "1234bb@gmail.com", "abcd@163.com", "1234aa.com")//一个个的校验,如1234aa.com
    val matches: Iterator[Regex.Match] = regex.findAllMatchIn("1234aa.com")
    println(matches)//empty iterator
    println(matches.size)//0//一次性校验多个,如过滤出emails中的非法邮箱,也就是如果非法则返回true则会被过滤出来
    val invalidEmails: List[String] = emails.filter(email => {
      if (regex.findAllMatchIn(email).size < 1) { //非法
        true
      } else {
        false
      }
    })
    println(invalidEmails)//List(1234aa.com)
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值