Les regexp ? explication !
Il y a pas si longtemps que sa (pour pas dire ce week-end !
), j’avais besoin de réaliser une recherche à travers un fichier html mal fichu (de ce côté là google n’ a plus à nous apprendre
là où on nous rabâche à chaque fois de bien mettre en forme notre code bah là pas de chance… c’est le bordel !!
Comme ça à brut pour point, ça peut paraitre un peu absurde, imaginez-vous un autre exemple, comment cherchez dans une liste de prénoms, tous les prénoms commençant par la A et se terminant en plus par la lettre D… Ca peut paraitre tordu, mais avec les Regexp.
Donc dans mon cas, voici la requête que j’utilise (fonctionne avec un grep dans un shell) :
(https?|ftp|news|telnet|finger|file)://[-a-zA-Z0-9+&@#/%?=~_|:,.;]*[-a-zA-Z0-9+&@#/%=~_|]
On va décortiquer ce motif :
- (https?|ftp|news|telnet|finger|file):// : on recherche tous les protocoles à rechercher, le ‘|’ est ici utilisé comme un ‘ou’. De même le fait d’utiliser https? permet de recherche ‘http’ ou ‘https’ (cette requête pourrait ré-écrite de la manière suivante : (http|https|ftp|news|telnet|finger|file)://
- [-a-zA-Z0-9+&@#/%?=~_|:,.;]*[-a-zA-Z0-9+&@#/%=~_|] : on indique les caractères que l’on souhaite rechercher, l’astérisque ‘*’ indique ici une taille de motif indéfinie ensuite on applique de nouveau des critères de sélections
Par contre, je me pose une question ! pourquoi doit-on indiquer le signe moins devant les caractères à rechercher ? si je les supprime mes recherches sont tronquées… Bizarre, si quelqu’un connait la solution je suis preneur.













