Une expression régulière (regexp) est une séquence spécifique de caractères qui correspond de façon plus ou moins étroite aux modèles de vos données. Vous pouvez utiliser des expressions régulières pour créer des filtres plus flexibles dans des graphiques et des commandes. Il est également possible d'utiliser les fonctions d'expression régulière suivantes dans les formules de champs calculés :
Fonction | Description |
---|---|
REGEXP_CONTAINS |
Renvoie la valeur "true" si la valeur d'entrée contient le modèle de l'expression régulière. Sinon, renvoie la valeur "false". En savoir plus sur REGEXP_CONTAINS |
REGEXP_EXTRACT |
Renvoie la première sous-chaîne de la valeur d'entrée correspondant au modèle de l'expression régulière. En savoir plus sur REGEXP_EXTRACT |
REGEXP_MATCH |
Renvoie la valeur "true" si la valeur d'entrée correspond au modèle de l'expression régulière. Sinon, renvoie la valeur "false". En savoir plus sur REGEXP_MATCH |
REGEXP_REPLACE |
Remplace toutes les occurrences textuelles correspondant au modèle de l'expression régulière dans la valeur d'entrée par la chaîne de remplacement. En savoir plus sur REGEXP_REPLACE |
Alternatives à l'utilisation d'expressions régulières
L'élaboration d'expressions régulières peut s'avérer complexe. Avant d'utiliser une fonction incluant une expression régulière, demandez-vous si l'utilisation d'une fonction texte plus simple vous permettrait d'atteindre votre objectif. Les fonctions suivantes fournissent un niveau de fonctionnalité identique à celles utilisant des expressions régulières sans que vous ayez besoin de connaître la syntaxe des expressions régulières.
Fonction | Description |
---|---|
CONTAINS_TEXT |
Renvoie la valeur "true" si le texte spécifié est détecté dans le champ ou l'expression. Sinon, renvoie la valeur "false". |
ENDS_WITH |
Renvoie la valeur "true" si le champ ou l'expression se termine par le texte spécifié. Sinon, renvoie la valeur "false". |
LEFT_TEXT |
Renvoie un nombre de caractères à partir du début d'une chaîne donnée. |
REPLACE |
Renvoie une copie du texte original où toutes les occurrences du texte de recherche sont remplacées par le texte de remplacement. |
RIGHT_TEXT |
Renvoie un nombre de caractères à partir de la fin d'une chaîne donnée. |
STARTS_WITH |
Renvoie la valeur "true" si le champ ou l'expression commence par le texte spécifié. Sinon, renvoie la valeur "false". |
TRIM |
Renvoie du texte sans espace superflu au début ou à la fin. |
Exemples d'expressions régulières
Pour établir une correspondance si MonChamp contient des espaces :
REGEXP_CONTAINS(MyField, "\\s+")
Extrait le répertoire racine d'une URL :
REGEXP_EXTRACT(URL,
^https://[^/]+/([^/]+)/
)
Par exemple, si le champ URL
contenait l'adresse de cette page, la fonction précédente renverrait looker-studio
.
Pour catégoriser les campagnes publicitaires par langue :
CASE
WHEN REGEXP_MATCH(Campaign 2, R".*\|\s*en\s*\|.*") then "English"
WHEN REGEXP_MATCH(Campaign 2, R".*\|\s*es\s*\|.*") then "Spanish"
ELSE "Other language"
END
Par exemple, l'application de cette expression régulière à la dimension Campagne dans le compte de démonstration Google Analytics génère les résultats suivants :
Campagne | Langue |
---|---|
Campagne n° 1 | Autre langue |
1000549 | Google Analytics Demo | DR | apontes | NA | US | en | Hybrid | AW SEM | BKWS | ~ AW - Google Brand (US) | Anglais |
1000549 | Google Analytics Demo | DR | apontes | NA | CA | es | Hybrid | AW SEM | BKWS | ~ AW - YouTube (CA) | Espagnol |
Pour intervertir l'ordre des sections dans une chaîne :
REGEXP_REPLACE(Campaign, R'(.*):(.*)', R'\2 \1')
Dans l'exemple précédent, les sections sont séparées par le caractère deux-points (:).
Métacaractères
Les métacaractères sont des caractères qui possèdent une signification particulière dans une expression régulière. Voici quelques-uns des métacaractères les plus courants que vous pouvez utiliser. Notez que ces exemples s'ouvrent dans le centre d'aide Google Analytics, mais que les informations présentées s'appliquent également à Looker Studio.
Caractères génériques
Caractère | Description | Exemple |
---|---|---|
. | Correspond à un seul caractère, quel qu'il soit (lettre, chiffre ou symbole). | 1. correspond à 10, 1A 1.1 correspond à 111, 1A1 Exemples |
? | Correspond au caractère qui précède zéro ou une fois. | 10? correspond à 1, 10 Exemples |
+ | Correspond au caractère qui précède une ou plusieurs fois. | 10+ correspond à 10, 100 Exemples |
* | Correspond au caractère qui précède zéro ou plusieurs fois. | 1* correspond à 1, 10 Exemples |
| | Crée une correspondance OR. À ne pas utiliser à la fin d'une expression. | 1|10 correspond à 1, 10 Exemples |
Ancrages
Caractère | Description | Exemple |
---|---|---|
^ | Correspond aux caractères adjacents au début d'une chaîne. | ^10 correspond à 10, 100, 10x ^10 ne correspond pas à 1 10 , 1 10 x Exemples |
€ | Correspond aux caractères adjacents à la fin d'une chaîne. | 10$ correspond à 110, 1010 10$ ne correspond pas à 100, 10x Exemples |
Groupes
Caractère | Description | Exemple |
---|---|---|
( ) | Correspond aux caractères entre parenthèses exactement dans leur ordre d'apparition, n'importe où dans une chaîne. Utilisé également pour regrouper d'autres expressions. | (10) correspond à 10 , 10 1, 10 11 ([0-9]|[a-z]) correspond à n'importe quel chiffre ou lettre minuscule. Exemples |
[ ] | Correspond aux caractères entre crochets dans n'importe quel ordre, n'importe où dans une chaîne. | [10] correspond à 01 2, 1 20, 2 10 Exemples |
- | Crée une plage de caractères (entre crochets) avec lesquels établir une correspondance n'importe où dans une chaîne. | [0-9] correspond à tout chiffre de 0 à 9 Exemples |
Échap
Caractère | Description | Exemple |
---|---|---|
\\ | Indique que le caractère adjacent doit être interprété de façon littérale plutôt que comme un métacaractère d'expression régulière. |
\\. indique que le point adjacent doit être interprété comme un point final et non comme un caractère générique 216\\.239\\.32\\.34 correspond à 216.239.32.34 Exemples |
Classes de caractères
Classe | Caractères |
---|---|
\d | chiffres (≡ [0-9]) |
\D | pas de chiffre (≡ [^0-9]) |
\s | espace blanc (≡ [\t\n\f\r ]) |
\S | pas d'espace blanc (≡ [^\t\n\f\r ]) |
\w | caractères de mot (≡ [0-9A-Za-z_]) |
\W | pas de caractère de mot (≡ [^0-9A-Za-z_]) |
Conseils
Utiliser des expressions simples
Vos expressions régulières doivent rester simples. Les expressions simples sont plus faciles à interpréter et à modifier par les autres utilisateurs.
Sensibilité à la casse
Par défaut, les expressions régulières sont sensibles à la casse. Vous pouvez rendre la correspondance non sensible à la casse à l'aide de l'indicateur (?i)
. Par exemple, cette expression extrait à la fois "abc123" et "ABC123" :
REGEXP_EXTRACT(MyField, '(?i)(a.*)')
Échapper une barre oblique inverse
Si vous souhaitez écrire une condition de filtre qui inclut une barre oblique inverse, vous devez l'échapper avec une seconde barre oblique inverse.
Par exemple, l'expression suivante vérifie si un champ contient la chaîne green\yellow
:
REGEXP_CONTAINS(field_name, "green\\yellow")
Vous pouvez également ajouter le préfixe de littéral de chaîne brute R à une expression. Dans ce cas, vous n'avez pas besoin d'échapper les caractères spéciaux, comme la barre oblique inverse. L'exemple précédent peut être réécrit de manière équivalente comme suit :
REGEXP_CONTAINS(field_name, R"green\yellow")