Lisibilité des regexp

Catégorie : Programmation
(1 vote)
Auteur : OmniScienT Date : 08/04/07 à 08H00

S'il y a bien une chose d'illisible, ce sont les regexp (expressions régulières). En effet rien que pour vérifier une adresse, on se retrouve avec quelque chose du genre : ((https?|ftp)://(w{3}\.)?)(?<\!www)(\w+-?)*\.([a-z]{2,4}). Forcément ce n'est pas très accueillant. Pour ceux qui auraient le soucis de se faire relire, sachez qu'il existe plusieurs méthodes pour y rajouter des commentaires. La première étant d'uiliser le paramètre x. Un exemple :
$regex =
'/(w+s+){6}  # Mot suivit d'espace, répété six fois
 w+                # Le dernier mot
 /x
';
Il modifie le comportement en ignorant tous les espaces vides ainsi que les caractères situés entre un # et une fin de ligne.

Une autre façon peut-être plus pratique est de se servir de la concaténation et des commentaires du langage lui-même. C'est à dire :
$regex =
'/(w+s+)'. // Mot suivit d'espace
'{6}'.         // Répété six fois
'w+'.         // Le dernier mot
'/'.

L'intérêt est que les instructions sont bien séparées et facilement compréhensibles pour être modifiées au besoin. Alors con-vaincu de coder proprement ? 

(Source : PHP In Action)

Aucun commentaire - Écrire une nouvelle réaction -

- Consulter les dernières actualités (de cette catégorie) -
 
Admin