Trouver regex

4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant

version 11


Trouver regex (motif; laChaîne{; début{; pos_trouvée; long_trouvée; *}}) Booléen

ParamètreTypeDescription
motifTexteExpression régulière
laChaîneTexteChaîne dans laquelle s'effectue la recherche
débutNumériquePosition dans laChaîne où doit débuter la recherche
pos_trouvéeVar | Tab Entier longPosition de l'occurence
long_trouvéeVar | Tab Entier longLongueur de l'occurence
**Si passé : rechercher uniquement à la position
indiquée
RésultatBooléenVrai = la recherche a trouvé une occurrence,
Faux sinon

Description

La commande Trouver regex permet de tester la conformité d'une chaîne de caractères par rapport à un ensemble de règles synthétisé au moyen d'un méta-langage appelé "expression régulière" ou "expression rationnelle". L'abrévation regex est communément employée pour désigner ces familles de notations.

Passez dans motif l'expression régulière à rechercher. Il s'agit d'une suite de caractères chargée de décrire une chaîne de caractères, à l'aide de caractères spéciaux.

Passez dans laChaîne la chaîne dans laquelle rechercher l'expression régulière.

Passez dans début la position dans laChaîne où doit débuter la recherche.

Si pos_trouvée et long_trouvée sont des variables, la commande retourne la position et la longueur de l'occurrence dans ces variables. Si vous passez des tableaux, la commande retourne la position et la longueur de l'occurrence dans l'élément zéro des tableaux et les positions et longueurs des groupes capturés par l'expression régulière dans les éléments suivants.

Le paramètre * indique, s'il est passé, que la recherche doit s'effectuer à la position définie par début sans chercher plus loin en cas d'échec.

La commande retourne Vrai si la recherche a trouvé une occurrence.

Pour plus d'informations sur les regex, reportez-vous par exemple à l'adresse suivante :

http://fr.wikipedia.org/wiki/Expression_rationnelle

Pour plus d'informations sur la syntaxe de l'expression régulière passée dans le paramètre motif, reportez-vous à l'adresse suivante :

http://www.icu-project.org/userguide/regexp.html

Exemples

Cette commande peut être utilisée de plusieurs manières, illustrées par les exemples ci-dessous :

(1) Recherche d'égalité complète :

vtrouvé:=Trouver regex(motif;montexte)

   CHERCHER PAR FORMULE([Employés];Trouver regex(".*smith.*"; [Employés]nom))

(2) Recherche dans le texte par position :

vtrouvé:=Trouver regex( motif;montexte; début; pos_trouvée; long_trouvée)

Exemple pour afficher tous les tags de $1 :

   début:=1
   Repeter
      vtrouvé:=Trouver regex("<.*>";$1;début;pos_trouvée;long_trouvée)
      Si(vtrouvé)
         ALERTE(Sous chaine($1;pos_trouvée;long_trouvée))
         début:=pos_trouvée+long_trouvée
      Fin de si
   Jusque(Non(vtrouvé))

(3) Recherche avec prise en charge des "groupes capturés" :

vtrouvé:=Trouver regex( motif;montexte; début; tab_pos_trouvée; tab_long_trouvée)

   TABLEAU ENTIER LONG(tab_pos_trouvée;0)
   TABLEAU ENTIER LONG(tab_long_trouvée;0)
   vtrouvé:=Trouver regex("(.*)truc(.*)";$1;1;tab_pos_trouvée; tab_long_trouvée)
   Si (vtrouvé)
      $group1:=Sous chaine($1;tab_pos_trouvée{1};tab_long_trouvée{1})
      $group2:=Sous chaine($1;tab_pos_trouvée{2};tab_long_trouvée{2})
   Fin de si

(4) Recherche en limitant la comparaison de motif à la position indiquée :

Rajouter une étoile à la fin d'une des deux syntaxes précédentes.

   vtrouvé:=Trouver regex("a.b";"---a-b---";1;$pos_trouvée;$long_trouvée)
      `retourne Vrai
   vtrouvé:=Trouver regex("a.b";"---a-b---";1;$pos_trouvée;$long_trouvée;*)
      `retourne Faux
   vtrouvé:=Trouver regex("a.b";"---a-b---";4;$pos_trouvée;$long_trouvée;*)
      `retourne Vrai

Note : Les positions et longueurs retournées n'ont de sens qu'en mode Unicode ou si le texte manipulé est de type ASCII 7 bits.

Gestion des erreurs

En cas d'erreur, la commande génére une erreur que vous pouvez intercepter via une méthode installée par la commande APPELER SUR ERREUR.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant