REGEXP_CONTAINS |
Contient l'expression régulière |
| BigQuery |
Syntaxe
|
REGEXP_CONTAINS(value, regexp)
|
Paramètres
| Nom |
Description |
| value |
Ce paramètre permet de spécifier la chaîne de caractères (STRING) ou la séquence d'octets (BYTES) dans laquelle vous souhaitez rechercher la correspondance avec l'expression régulière. |
| regexp |
Ce paramètre permet de définir l'expression régulière (STRING ou BYTES) que vous souhaitez utiliser pour la recherche. La fonction renvoie TRUE si une partie de la value correspond à l'expression régulière, et FALSE sinon. |
Description
Cette fonction permet de vérifier une expression régulière (regex) sur la valeur spécifié.
Remarques
- Vérification par expression régulière : La fonction REGEXP_CONTAINS() permet de tester si une chaîne de caractères contient un motif conforme à une
expression régulière. Cela la rend plus puissante qu'un simple LIKE, car elle peut gérer des motifs complexes.
- Retourne une valeur booléenne : Le résultat de la fonction est soit TRUE soit FALSE, ce qui en fait une fonction idéale pour filtrer les lignes dans
une clause WHERE, selon qu'un motif soit trouvé ou non dans une valeur donnée.
- Sensibilité à la casse par défaut : Par défaut, la recherche effectuée par REGEXP_CONTAINS est sensible à la casse. Cela signifie que
REGEXP_CONTAINS("Bonjour", "bonjour") renverra FALSE. Pour ignorer la casse, il faut inclure le modificateur (?i) dans l'expression régulière.
- Utilisation d'expressions régulières complètes : Le paramètre regexp peut inclure des caractères spéciaux, quantificateurs, classes de
caractères,..., selon la syntaxe des expressions régulières RE2, prise en charge par BigQuery. Il est possible de détecter des modèles très précis.
- Incompatibilités ou erreurs en cas d'expression invalide : Si l'expression régulière est mal formée (syntaxe incorrecte, parenthèses non fermées,...), la
fonction générera une erreur. Il est donc important de bien valider la regex avant de l'utiliser dans une requête.
- Compatible avec les types STRING et BYTES : La fonction peut être utilisée sur des chaînes de texte (STRING) ou sur des séquences binaires (BYTES). Cela
permet d'appliquer des vérifications complexes sur des données encodées ou non textuelles.
- Cas d'usage fréquent en analyse de texte : REGEXP_CONTAINS est très utile pour rechercher des modèles dans du texte libre, comme des numéros de
téléphone, des adresses e-mail, des codes postaux ou même des expressions de langage dans des commentaires utilisateurs.
- Peut impacter les performances à grande échelle : L'évaluation d'expressions régulières peut devenir coûteuse en ressources, surtout sur des tables
contenant des millions de lignes. Il est préférable d'optimiser les regex ou de les limiter à des champs indexés.
Dernière mise à jour : Jeudi, le 18 Juin 2020