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")
}

 

Voir les commentaires

Rédigé par Bliz

Publié dans #Scala

Repost 0