Une expression régulière 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. Vous pouvez également utiliser les fonctions d'expression régulière suivantes dans les formules de champs calculés:
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 |
EGEXP_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 EGEXP_REPLACE |
Alternatives aux 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 d'origine 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
Correspond si MyField 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 d'un compte de démonstration Google Analytics génère les résultats suivants:
Campagne | Langue |
---|---|
Campagne 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
. | 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 fois ou plus. | 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
^ | Correspond aux caractères adjacents au début d'une chaîne. | ^10 correspond à 10 , 10 0, 10 x ^10 ne correspond pas à 1 10 , 1 10 x Exemples |
€ | Correspond aux caractères adjacents à la fin d'une chaîne. | 10$ correspond à 1 10 , 10 10 10$ ne correspond pas à 10 0, 10 x Exemples |
Groupes
( ) | Correspond aux caractères entre parenthèses dans leur ordre d'apparition exact, n'importe où dans une chaîne. Permet également de regrouper d'autres expressions. |
(10) correspond à 10 , 10 1, 10 11 ([0-9]|[a-z]) correspond à tout nombre ou toute 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
\\ | 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
\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.*)')
Échappement avec la barre oblique inverse
Comme indiqué précédemment, la barre oblique inverse (\) sert à échapper les métacaractères d'expressions régulières lorsque ces caractères doivent être interprétés littéralement. Pour rechercher une barre oblique inverse dans une chaîne entre guillemets, vous devez également l'échapper. Votre expression comporte alors deux barres obliques inverses. Exemple :
REGEXP_REPLACE(String, "(\\[.*\\])\\+(\\[.*\\])","\\2 \\1")
Vous pouvez également utiliser le préfixe de littéral de chaîne brute R:
REGEXP_REPLACE(String, R"(\[.*\])\+(\[.*\])",R"\2 \1")