scala--正規表現-★★

正規表現-★★

正規表現クラス

  • 正規表現を定義するために、Regexクラスがscalaで提供されています
    • 正規表現オブジェクトを作成するには、新しい正規表現メソッドを使用するか、Stringクラスのrメソッドを直接使用します。
    • val regex1 = new Regex( "" "正規表現" "")
    • val regex2 = "" "正規表現" ""。r//正規表現を表すには、3つの二重引用符を使用することをお勧めします。使用しない場合は、正規表現の円記号をエスケープする必要があります。
  • 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("[email protected]", "[email protected]", "[email protected]", "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)
  }
}

おすすめ

転載: blog.csdn.net/qq_46893497/article/details/114044173