Reconnaissance de motifs

Trouver des exemples de chaînes qui correspondent aux motifs suivants :

  • ^[A-Z][a-z]+$
  • [0-9]{3}-[0-9]{2}-[0-9]{4}

Pour tester : echo 'texte' | grep -q 'motif' && echo "OK" — attention à échapper (, ), | et + ; exemple :

  • echo '…' | grep -q '^[A-Z][a-z]\+$' && echo 'OK'
  • echo '…' | grep -q '[0-9]{3}-[0-9]{2}-[0-9]{4}' && echo 'OK'

Décodage et explications

Expliquez en détail les motifs reconnus par les expressions suivantes :

  • ^(Mr|Mme)\. [A-Za-z]+$
  • [0-9]{2}/[0-9]{2}/[0-9]{4}

Création

Écrire les expressions rationnelles permettant de reconnaître :

  • un numéro de téléphone sur 8 chiffres (Polynésie Française) ;
  • un nombre réel, en acceptant le séparateur . ou ,.

Proposer des expressions rationnelles permettant de formater

  • un numéro de téléphone en insérant des espaces tous les deux chiffres ;
  • de convertir une date entre les formats AAAA-MM-JJ et JJ/MM/AAAA.

Pour mettre en oeuvre le remplacement, utiliser la commande sed : echo 'texte' | sed 's/motif/remplacement/' (la lettresdemande une substitution et les/` servent de séparateur) ; exemples :

  • echo 'Mr Tafau' | sed 's/Mr/Mme/'
  • echo 'René Barjavel-Ravage' | sed 's/\([A-Za-z ]*\)-\([A-Za-z ]*\)/Titre: \2\nAuteur: \1/'

Contrôleur et expression rationnelles

Analyser la méthode validate de la classe IO :

  • expliquer les instructions filter_var ;
  • rechercher (dans la documentation officielle) les autres formats de validation ;
  • expliquer la solution mise en œuvre pour le traitement des dates et heures.