Comment faire un pattern matching sur une expression régulière en Scala

Publié le 23 Novembre 2016

En scala l'utilisation des expressions régulières combinée avec le pattern matching permet de simplifier l'extraction de groupes à l'intérieur des regex.

Par exemple imaginons que nous devons extraire les composants d'une date au format aaaa-mm-dd (soit année-mois-jour).

Il nous faut tout d'abord une regex pour extraire les 3 composants: (\d{4})-(\d{2})-(\d{2}). On utilise 3 groupes (les parenthèses) composés de 4 puis 2 digits et séparé par des -.

Ensuite il n'y a plus qu'a combiner cette regex avec un pattern matching. Ce qui donne:

// la date à parser
val str = "2016-11-23"
// la regex pour extraire les composants
val date = """(\d{4})-(\d{2})-(\d{2})""".r

str match {
   case date(annee, mois, jour) => println(s"Date $jour/$mois/$annee")
   case _ => println("date invalide")
}

 

Rédigé par Bliz

Publié dans #Scala

Repost 0
Commenter cet article