Fonction REGEXFIND( )
Renvoie une valeur logique indiquant si le modèle spécifié par une expression ordinaire se produit dans une chaîne de caractères.
Syntaxe
REGEXFIND(chaîne_de_caractères; modèle)
Paramètres
Nom | Type | Description |
---|---|---|
chaîne |
caractère |
Le champ, l'expression ou la valeur littérale à tester pour un modèle correspondant. |
modèle |
caractère |
La chaîne de modèle (expression ordinaire) à rechercher. modèle peut contenir des caractères littéraux, des métacaractères ou une association des deux. Les caractères littéraux incluent tous les caractères alphanumériques, certains caractères de ponctuation et des caractères vides. La recherche respecte la casse, ce qui signifie que les caractères alphanumériques en majuscules et en minuscules doivent être explicitement spécifiés. |
Sortie
Logique. Renvoie T (« true », vrai) si la valeur modèle indiquée est trouvée ; renvoie F (« false », faux) dans les autres cas.
Exemples
Exemples basiques
Modèles de caractères alphabétiques
Renvoie T pour tous les enregistrements dont le champ Ville_fournisseur contient « Phoenix », « Austin » ou « Los Angeles ». Renvoie F autrement :
REGEXFIND(Ville_fournisseur; "Phoenix|Austin|Los Angeles")
Renvoie T pour tous les noms qui commencent par « John » ou par « Jon ». Par exemple : John, Jon, Johnson, Johnston, Jonson, Jonston, Jones, etc. Renvoie F autrement :
REGEXFIND(Nom;"^Joh?n")
Renvoie T pour uniquement les noms qui sont « John » ou « Jon ». Renvoie F autrement :
REGEXFIND(Nom;"^Joh?n\b")
Modèles de caractères numériques
Renvoie « T » pour tous les enregistrements dont les numéros de facture contiennent « 98 » : Renvoie F autrement :
REGEXFIND(No_Facture; "98")
Renvoie T pour tous les enregistrements dont les numéros de facture commencent par « 98 ». Renvoie F autrement :
REGEXFIND(No_Facture; "\b98")
Renvoie T pour tous les enregistrements dont les numéros de facture se terminent par « 98 ». Renvoie F autrement :
REGEXFIND(No_Facture; "98\b")
Renvoie T pour tous les enregistrements dont les numéros de facture contiennent « 98 » aux 5e et 6e places. Renvoie F autrement :
REGEXFIND(No_Facture; "\b\d\d\d\d98")
REGEXFIND(No_Facture; "\b\d{4}98")
Modèles de caractères mélangés
Renvoie T pour tous les enregistrements dont les codes produits commencent par 3 chiffres, suivis d'un trait d'union et de 6 lettres. Renvoie F autrement :
REGEXFIND(Code_Produit; "\b\d{3}-[a-zA-Z]{6}\b")
Renvoie T pour tous les enregistrements dont les codes produits commencent par 3 chiffres, suivis d'un trait d'union et d'au moins 6 lettres. Renvoie F autrement :
REGEXFIND(Code_Produit; "\b\d{3,}-[a-zA-Z]{6}")
Renvoie T pour tous les enregistrements dont les identificateurs de factures alphanumériques contiennent « 98 » aux 5e et 6e places. Renvoie F autrement :
REGEXFIND(No_Facture; "\b\w{4}98")
Renvoie T pour tous les enregistrements dont les identificateurs de factures contiennent les deux éléments suivants, renvoie F dans le cas contraire :
- n'importe quel caractère dans les quatre premières places
- « 98 » aux 5e et 6e places
REGEXFIND(No_Facture; "\b.{4}98")
Renvoie T pour tous les enregistrements dont les identificateurs de factures contiennent « 98 » précédé de 1 à 4 caractères de début. Renvoie F autrement :
REGEXFIND(No_Facture; "\b.{1,4}98")
Renvoie « T » pour tous les enregistrements dont les identificateurs de factures contiennent tous les éléments suivants, renvoie F dans le cas contraire :
- n'importe quel caractère dans les trois premières places
- « 5 » ou « 6 » à la 4e place et
- « 98 » aux 5e et 6e places
REGEXFIND(No_Facture; "\b.{3}[56]98")
Renvoie « T » pour tous les enregistrements dont les identificateurs de factures contiennent tous les éléments suivants, renvoie F dans le cas contraire :
- n'importe quel caractère dans les deux premières places
- « 55 » ou « 56 » aux 3e et 4e places
- « 98 » aux 5e et 6e places
REGEXFIND(No_Facture; "\b.{2}(55|56)98")
Remarques
Fonctionnement
La fonction REGEXFIND( ) utilise une expression ordinaire pour rechercher des données dans Analytics.
Les expressions ordinaires sont des chaînes de caractères de recherche puissantes et souples qui associent caractères littéraux et métacaractères, qui sont des caractères spéciaux effectuant une grande variété d'opérations de recherche.
Par exemple :
REGEXFIND(Nom;"Sm(i|y)the{0,1}")
utilise les métacaractères de groupe ( ), de changement | et de quantificateur { } pour créer une expression ordinaire qui trouve « Smith », « Smyth », « Smithe » ou « Smythe » dans le champ Nom.
Correspondances séquentielles
La correspondance entre les valeurs chaîne_de_caractères et modèle s'effectue de manière séquentielle. Dans l'exemple précédent :
- "S" a une correspondance en première position dans le champ Nom
- "m" a une correspondance en deuxième position
- "i" et "y" ont une correspondance en troisième position
- "t" a une correspondance en quatrième position
- "h" a une correspondance en cinquième position
- "e" a une correspondance en sixième position, si une sixième position existe dans la valeur source
Quand utiliser la fonction REGEXFIND( )
Utilisez la fonction REGEXFIND( ) pour rechercher des données à l'aide de mise en correspondance de modèles simples ou complexes.
La construction d'expressions ordinaires peut s'avérer être une tâche délicate, notamment si vous débutez dans la syntaxe. Il se peut que vous atteigniez vos objectifs de recherche à l'aide de fonctions de recherche Analytics plus simples comme FIND( ), MATCH( ) ou MAP( ).
Si vos critères de recherche dépassent les capacités de ces fonctions plus simples, les expressions ordinaires vous donnent presque une flexibilité illimitée dans la construction de chaînes de recherche.
Comment REGEXFIND( ) gère les espaces
Les espaces (valeurs vides) sont traitées comme des caractères dans les chaîne_de_caractères et modèle ; vous devez donc redoubler de vigilance lorsque vous traitez les espaces.
Dans modèle, il est possible d'indiquer un espace soit littéralement, en saisissant un espace, soit à l'aide du métacaractère \s. L'utilisation du métacaractère facilite la lecture des espaces dans modèle, qui risquent moins d'être négligées, notamment lorsque vous construisez des modèles plus complexes.
Concaténation de champs
Vous pouvez concaténer deux champs ou plus dans chaîne_de_caractères si vous souhaitez que votre recherche porte sur plusieurs champs en même temps.
Par exemple :
REGEXFIND(Nom_Fournisseur+Rue_Fournisseur;"Matériel.*Grand")
recherche les mots « Matériel » et « Grand » séparés par zéro ou plusieurs caractères dans les champs Nom_Fournisseur et Rue_Fournisseur.
Une entreprise dont le nom comporte le mot « Matériel », située dans une rue intitulée « Grand », correspond à cette expression ordinaire. Par exemple, une entreprise nommée « Matériel Grand-Rue » peut correspondre.
Les champs concaténés sont traités comme un seul champ incluant les espaces de début et de fin des champs individuels sauf si vous utilisez la fonction ALLTRIM( ) pour supprimer les espaces.
L'ordre des champs concaténés a de l'importance
REGEXFIND( ) recherchant les caractères dans modèle dans l'ordre que vous indiquez, l'ordre dans lequel vous concaténez les champs exerce une incidence. Si vous inversiez Nom_Fournisseur et Rue_Fournisseur dans l'expression ci-dessus, vous auriez moins de chances d'obtenir des résultats.
Métacaractères des expressions ordinaires
Le tableau suivant répertorie les métacaractères que vous pouvez utiliser avec REGEXFIND( ) et REGEXREPLACE( ) et décrit l'opération effectuée par chacun.
Une autre syntaxe, plus complexe et prise en charge par Analytics, existe pour les expressions ordinaires. Une explication complète d'une syntaxe supplémentaire sort de la portée du présent guide. De nombreuses ressources expliquant les expressions ordinaires sont disponibles sur Internet.
Analytics utilise l'implémentation ECMAScript des expressions ordinaires. La plupart des implémentations des expressions ordinaires utilisent une syntaxe principale courante.
Remarque
L'implémentation actuelle d'expressions ordinaires dans Analytics ne prend pas complètement en charge les langues de recherche différente de l'anglais.
Métacaractère |
Description |
---|---|
. |
Correspond à n'importe quel caractère (à l'exception d'un caractère de nouvelle ligne) |
? |
Correspond à 0 ou 1 occurrence de la valeur littérale, du métacaractère ou de l'élément qui précède immédiatement |
* |
Correspond à 0 ou plusieurs occurrences de la valeur littérale, du métacaractère ou de l'élément qui précède immédiatement |
+ |
Correspond à 1 ou plusieurs occurrences de la valeur littérale, du métacaractère ou de l'élément qui précède immédiatement |
{} |
Correspond au nombre d'occurrences spécifié de la valeur littérale, du métacaractère ou de l'élément qui précède immédiatement. Il est possible de spécifier un nombre exact, une plage ou une plage non finie. Par exemple :
|
[] |
Correspond à n'importe quel caractère unique entre les crochets Par exemple :
|
() |
Crée un groupe qui définit une séquence ou un bloc de caractères, qui peut ensuite être traité comme une seule unité. Par exemple :
|
\ |
Caractère d'échappement permettant d'indiquer que le caractère suivant immédiatement est un caractère littéral. Utilisez le caractère d'échappement si vous souhaitez faire correspondre littéralement des métacaractères. Par exemple, \( trouve une parenthèse gauche et \\ trouve une barre oblique inverse. Utilisez le caractère d'échappement si vous souhaitez faire correspondre littéralement l'un des caractères suivants : ^ $ . * + ? = ! : | \ ( ) [ ] { } Les autres caractères de ponctuation comme l'esperluette (&) ou le signe arobase (@) n'exigent pas de caractère d'échappement. |
\int |
Indique qu'un groupe, défini auparavant avec des parenthèses ( ), se répète. int est un entier qui identifie la position séquentielle du groupe défini précédemment vis-à-vis des autres groupes. Ce métacaractère peut être utilisé dans le paramètre modèle à la fois dans both REGEXFIND( ) et dans REGEXREPLACE( ). Par exemple :
|
$int |
Indique qu'un groupe trouvé dans une chaîne de caractères cible est utilisé dans une chaîne de remplacement. int est un entier qui identifie la position séquentielle du groupe dans la chaîne de caractères cible vis-à-vis des autres groupes. Ce métacaractère peut être uniquement utilisé dans le paramètre nouvelle_chaîne_de_caractères dans REGEXREPLACE( ). Par exemple :
|
| |
Correspond au caractère, aux blocs de caractères ou à l'expression avant ou après la barre verticale (|) Par exemple :
|
\w |
Correspond à un caractère de mot (a à z, A à Z, 0 à 9 et le caractère de soulignement _ ) |
\W |
Correspond à un caractère de non-mot (non compris entre a et z ni entre A et Z ni entre 0 et 9 ni le caractère de soulignement _ ) |
\d |
Correspond à n'importe quel nombre (décimale) |
\D |
Correspond à n'importe quel nombre (tout caractère qui n'est pas une décimale) |
\s |
Correspond à un espace (valeur vide) |
\S |
Correspond à tout non-espace (caractère non vierge) |
\b |
Correspond à une limite de mots (entre des caractères \w et \W) Les limites de mots n'utilisent pas d'espace eux-mêmes. Par exemple :
Astuce Outre les espaces, les limites de mots peuvent émaner de virgules, points et autres caractères de non-mot. Par exemple, l'expression suivante juge le résultat comme T (« true », vrai) : REGEXFIND("jsmith@example.net"; "\bexample\b") |
^ |
Correspond au début d'une chaîne de caractères Entre crochets [ ], ^ inverse le contenu |
$ |
Correspond à la fin d'une chaîne de caractères |
Fonctions associées
Si vous souhaitez rechercher et remplacer des modèles de mise en correspondance, utilisez la Fonction REGEXREPLACE( ).