[Tuto] Utilisation des REGEX dans Zennoposter

blog

On commence une série d’articles en parlant d’un élément important à maîtriser pour utiliser correctement Zennoposter: les expressions régulières ou REGEX. Personnellement, je les utilise dans pratiquement tous mes templates. Cela dit, pour un utilisateur non initié, ce n’est pas toujours très facile à comprendre. Je vais donc essayer de faire aussi simple que possible et avec des exemples, pour montrer pourquoi et comment ils sont utilisés dans Zennoposter.

A quoi servent les expressions régulières?

Dans Zenno ou avec d’autres logiciels les REGEX servent à beaucoup de choses. Je liste ici quelques idées qui me viennent mais il en existent bien d’autres:

  • scrapper des textes
  • sélectionner certains mots / certaines phrases
  • remplacer/supprimer certains mots / certaines phrases

Une expression régulière est un langage de recherche de sous-chaîne dans un texte, basé sur l’utilisation de symboles spéciaux et de pointeurs.

 

Les expressions régulières dans Zennoposter

Pour tester vos expressions dans zennoposter, allez dans l’éditeur avancé puis dans Regexp tester:

regex

 

Exemple 1:

Mon navigateur m’affiche une page contenant 2 liens:

<a href= »https://www.google.fr »>
<a href= » https://quaeris-web.fr »>

Vous avez 4 solutions pour extraire ces 2 liens en enlevant les balises:

Solution 1: on utilise les balises « commence par » et « termine par »

regex

l’expression régulière sera alors : https.*\.fr

Solution 2: on utilise les balises « commence après le mot » et « termine avant le mot »

regex

l’expression régulière sera alors : (?<=<a\ href= »).*(?= »>)

 

La solutions 3: on utilise les balises « commence par » et « termine avant le mot »

l’expression régulière sera alors : https.*(?= »>)

 

La solutions 4: on utilise les balises « commence après le mot » et « termine par »

l’expression régulière sera alors : (?<=<a\ href= »).*\.fr

 

Il existe 2 options au centre:

  • Enable Line Breaks: par default dans zenno, la recherche à partir de REGEX se fait dans chaque ligne du texte source. Avec cette option on peut lui demander de ne pas prendre en compte les passages à la ligne.
  • Shortest match: sélectionnera le résultat le plus court

 

Liste et explication d’expressions régulières

Afin de formuler correctement des expressions régulières par vous-même, nous allons examiner les symboles de base et nous déterminerons dans quelles situations ils peuvent être utilisés.

 

Les différents ensembles

«  . « – n’importe quel caractère, sauf le saut de ligne (\ n)

«  \ D  » est un caractère numérique, c’est-à-dire n’importe quel chiffre de 0 à 9

«  [0-9]  » – Il est possible de spécifier certains caractères numériques en utilisant des plages, par exemple [1-3] , on ne trouvera que les chiffres 1, 2 et 3

 » [A-Z] «  – Lettres majuscules de A à Z

 » [a-z] «  – Lettres minuscules de A à Z

 » [a-z0-9] «  – Lettres minuscules de a à z ou chiffres de 0 à 9

«  \  » – un espace

«  \f  » – nouvelle page

 » \r  » – retour chariot

 » \n  » – saut de ligne

 » \t  » – le caractère de tabulation

 » \v  » – le signe de la tabulation verticale

 » \e  » – échappement

 

Désignations de limites

^ – le début de la ligne;

$ – fin de ligne;

\ b – limite de mot;

\ B n’est pas une limite de mot.

 

Nombre de coïncidences – Quantificateurs

{n} – n fois exactement

{n,} – au moins n fois

{,n} – au plus n fois

{n,m} – entre m et n fois

– zéro ou un, correspond également à {0,1}

* – zéro ou plus, correspond également {0,}

+ – Un ou plusieurs, correspond également {1,}

 

Les quantificateurs sont définis après les symboles dont le nombre de répétitions doit être spécifié.

Par exemple, prenez un point qui représente n’importe quel caractère et créez une expression régulière qui correspond à n’importe quelle séquence de 4 caractères. Le résultat ressemblera à ceci: {4}

Exemples:

on demande un texte commençant par la lettre « b » suivi par 2 caractères et finissant par la lettre « n » :

b.{2}n:

Pour indiquer qu’il n’y aura que des lettres à l’intérieur, il faut écrire de cette façon: b[a-z]{2}n

regex

Vous pouvez également spécifier une séquence ou un ensemble de symboles à prendre en compte. Pour cela, des crochets sont utilisés.

Modificateurs:

(? I) – Permet à l’expression d’être insensible à la casse
(? -i) – désactive l’insensibilité de l’expression à la casse

regex

regex

Il y a aussi des cas où l’on peut demander les deux:regex

Dans cette exemple, (?i)test fait ressortir l’ensemble des possibilités mais (?-i)TEST restreint le résultat à une seule possibilité: la première.

 

  • Assertions

Une assertion marque la position dans une expression, elle ne correspond à aucun caractère. on utilisera alors l’accent circonflexe pour rechercher une valeur en début de chaine

^ a :  on recherche un mot commençant par la lettre a

Le signe ^ a plusieurs rôles. S’il est au début d’un ensemble entre crochets, il permet d’en prendre le complémentaire et s’il est au début de l’expression régulière, il marque le début de la chaîne. On veillera à ne pas confondre les deux.

a$: on recherche un mot terminant par la lettre a

Dans les cas, ou vous cherchiez un élément sur des sites différents, et que celui-ci est affiché avec différents formats (par exemple: String, STRING, string) . Ces trois valeurs seront différentes. Si vous devez préparer une expression régulière qui trouve toutes ces correspondances, vous devrez utiliser:

(? I) ^ $ string

 

  • les opérateurs OR et OU

Avec les expressions régulières, vous pouvez spécifier ce qu’il faut rechercher en utilisant l’opérateur OR comme suit:

1 | 2 (qui désignera le choix 1 ou 2).

Par exemple, si vous voulez vérifier la présence des phrases « Bonjour », « Merci de votre inscription », « Bienvenue » sur une page, vous pouvez utiliser l’expression régulière:

Bonjour | Merci de votre inscription | Bienvenue

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *