ExtractRegExGroup - fonction de script et fonction de graphique
ExtractRegExGroup() extrait le texte d'une expression de chaîne d'entrée en utilisant le modèle d'expression régulière composite spécifié. Lorsque vous utilisez la fonction, indiquez le groupe à utiliser dans l'expression régulière composite. Si aucune correspondance n'est trouvée, la fonction renvoie une valeur nulle.
Si vous utilisez la fonction ExtractRegExGroup() dans une instruction LOAD et si field_no est omis, la fonction renverra plusieurs enregistrements. Si plusieurs champs sont chargés à l'aide de ExtractRegExGroup(), les produits cartésiens de toutes les combinaisons sont créés.
Cette fonction effectue des opérations de regex sensibles à la casse. Sinon, vous pouvez utiliser la variante ExtractRegExGroupI() pour effectuer des opérations de regex non sensibles à la casse.
ExtractRegExGroup
(text, regex, group [, field_no])
chaîne
Arguments
Argument
Description
text
Expression de chaîne contenant le texte à extraire dans la valeur de renvoi.
regex
Expression régulière à utiliser pour extraire le texte.
group
Numéro du groupe, dans le cas d'une expression régulière composite.
Si l'expression régulière ne contient qu'un seul groupe, utilisez plutôt la fonction ExtractRegEx(). Sinon, utilisez ExtractRegExGroup() avec une valeur group égale à 0.
Vous pouvez spécifier une valeur group négative pour rechercher des correspondances de droite à gauche.
field_no
Numéro de la correspondance à extraire. Cela s'avère utile lorsqu'il est possible de trouver plusieurs correspondances pour l'expression régulière dans le texte. Par exemple, spécifiez une valeur 4 pour extraire la quatrième correspondance.
Cet argument est facultatif. S'il n'est pas spécifié, la valeur par défaut est 1.
Renvoie 456 (deuxième groupe de la deuxième correspondance).
Cas d'utilisation
Vous pouvez utiliser Extract RegEx() pour extraire des informations à isoler de données pouvant également contenir d'autres informations (par exemple, un texte libre ou des chaînes JSON). Par exemple :
Extraire d'un texte des adresses e-mail, des numéros de téléphone, des numéros de compte et d'autres informations.
Extraire d'un texte des valeurs numériques (par exemple, des devises).
Normaliser le formatage de données textuelles ou numériques.
Exemple 1 – Script de chargement permettant d'analyser des codes de transaction
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Tableau nommé Transactions, qui contient des informations sur les transactions. Certains détails sont capturés avec des codes de transaction via la syntaxe suivante :
Année de la transaction-Source de la transaction (c'est-à-dire, achat en ligne ou en magasin)-Centre de distribution associé
Création de plusieurs nouveaux champs pour extraire chaque détail, chacun réutilisant la même expression régulière composite.
Nos besoins :
L'année peut être une combinaison de quatre chiffres.
Les valeurs ONLINE et INSTORE sont les seules valeurs acceptables pour la source de la transaction.
Le centre de distribution doit comporter exactement cinq chiffres.
Script de chargement
Transactions:
Load
recno() as RecordID,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',0) as TransactionCode_Unparsed,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',1) as TransactionYear,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',2) as TransactionSource,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',3) as TransactionDC,
* Inline `
TransactionCode, Category
2025-ONLINE-60019, Product A
2024-INSTORE-60020, Product B
2025-ONLINE-60018, Product C
2024-ONLINE-60020, Product A
2025-INSTORE-60019, Product B
2025-ONLINE-60017, Product D
`;
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
RecordID
TransactionCode
TransactionCode_Unparsed
TransactionYear
TransactionSource
TransactionDC
Tableau de résultats
RecordID
TransactionCode
TransactionCode_Unparsed
TransactionYear
TransactionSource
TransactionDC
1
2025-ONLINE-60019
2025-ONLINE-60019
2025
ONLINE
60019
2
2024-INSTORE-60020
2024-INSTORE-60020
2024
INSTORE
60020
3
2025-ONLINE-60018
2025-ONLINE-60018
2025
ONLINE
60018
4
2024-ONLINE-60020
2024-ONLINE-60020
2024
ONLINE
60020
5
2025-INSTORE-60019
2025-INSTORE-60019
2025
INSTORE
60019
6
2025-ONLINE-60017
2025-ONLINE-60017
2025
ONLINE
60017
Ces résultats montrent comment l'argument group vous permet de réutiliser une seule regex pour plusieurs opérations. Le champ TransactionCode_Unparsed, qui utilise une valeur group égale à 0, n'apporte aucune valeur supplémentaire dans ce cas, mais il est indiqué ici à des fins de démonstration de la fonction.
Exemple 2 – Script de chargement permettant d'extraire des coordonnées d'entreprise
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Tableau nommé BusinessContactInfo qui contient des informations sur les entreprises trouvées sur le site Internet de chacune d'entre elles.
ContactInfo est un champ qui contient un texte libre, y compris les adresses e-mail et les numéros de téléphone des entreprises.
Création de plusieurs nouveaux champs pour extraire chaque détail, chacun réutilisant la même expression régulière composite.
Nos besoins :
Les adresses e-mail doivent remplir un ensemble spécifique de conditions et respecter certaines règles syntaxiques.
Les numéros de téléphone doivent être des numéros de téléphone NANP de 10 chiffres. Nous voulons permettre le placement entre parenthèses de l'indicatif régional et autoriser les espaces vides et les traits d'union à certains endroits.
Script de chargement
BusinessContactInfo:
Load
ExtractRegExGroupI(ContactInfo, '([a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']{1,50}\.[a-zA-Z0-9!#$%^&*\-_+=~{|}\/.'']{1,50})|(\({0,1}[0-9]{3}\){0,1}[ -]*[0-9]{3}[ -]*[0-9]{4})',1,1) as CompanyEmail,
ExtractRegExGroupI(ContactInfo, '([a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']{1,50}\.[a-zA-Z0-9!#$%^&*\-_+=~{|}\/.'']{1,50})|(\({0,1}[0-9]{3}\){0,1}[ -]*[0-9]{3}[ -]*[0-9]{4})',2,2) as CompanyPhoneNum,
* Inline `
ID CompanyName ContactInfo
1 Company A Email is: Company1@example.com, Phone number is: (123) 456-7890
2 Company B Email is: company2@test.com, Phone # is: 0123456790
3 Company C Email is: company3@placeholder.com, Phone no. is: 234-567-8901
` (delimiter is '\t');
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
CompanyName
CompanyEmail
CompanyPhoneNum
Tableau de résultats
CompanyName
CompanyEmail
CompanyPhoneNum
Company A
Company1@example.com
(123) 456-7890
Company B
company2@test.com
0123456790
Company C
company3@placeholder.com
234-567-8901
La même expression régulière composite est réutilisée pour récupérer des informations différentes. L'argument group spécifie lequel des deux groupes de l'expression régulière doit faire l'objet de la recherche, et l'argument field_no spécifie la correspondance globale (sur l'ensemble de la chaîne) à trouver.
La variante ExtractRegEGroupxI() de la fonction permet d'effectuer des recherches sans tenir compte de la casse.
Exemple 3 – Script de chargement permettant d'extraire les composants de codes ISBN
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Création d'une variable, ISBN_RegEx, pour stocker l'expression régulière à utiliser pour toutes les extractions.
Ensemble des codes ISBN des livres qu'une librairie souhaite commander auprès de plusieurs fournisseurs.
Nous devons extraire les éléments suivants de chaque code ISBN :
EAN
Groupe
Déclarant
Publication
Somme de contrôle
Script de chargement
SET ISBN_RegEx = 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})';
ISBN:
LOAD Supplier,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',1) AS EAN,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',2) AS Group,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',3) AS Registrant,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',4) AS Publication,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',5) AS Checksum;
// Split the ISBN with the Group function in a preceding load to avoid generating a cartesian product
LOAD *,
ExtractRegEx(SupplierBooks, '$(ISBN_RegEx)') AS Books
INLINE [
Supplier, SupplierBooks
Supplier 1, ISBN 123-3-1234-1234-0 ISBN 012-2-0123-0123-4 ISBN 000-1-0123-0123-2 ISBN 234-5-2345-2345-1 ISBN 555-2-5555-5555-3 ISBN 222-4-2222-2222-2
Supplier 2, ISBN 000-0-3333-3333-3 ISBN 333-3-3333-3333-3 ISBN 555-1-5151-5151-3 ISBN 232-1-2323-2323-1 ISBN 008-0-7777-7777-3 ISBN 888-0-9999-0000-0
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
Supplier
EAN
Group
Registrant
Publication
Checksum
Tableau de résultats
Supplier
EAN
Group
Registrant
Publication
Checksum
Supplier 1
000
1
0123
0123
2
Supplier 1
012
2
0123
0123
4
Supplier 1
123
3
1234
1234
0
Supplier 1
222
4
2222
2222
2
Supplier 1
234
5
2345
2345
1
Supplier 1
555
2
5555
5555
3
Supplier 2
000
0
3333
3333
3
Supplier 2
008
0
7777
7777
3
Supplier 2
232
1
2323
2323
1
Supplier 2
333
3
3333
3333
3
Supplier 2
555
1
5151
5151
3
Supplier 2
888
0
9999
0000
0
Exemple 4 – Expressions de graphique permettant d'extraire des coordonnées professionnelles (avec une comparaison ExtractRegEx())
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Tableau nommé BusinessContactInfo qui contient des informations sur les entreprises trouvées sur le site Internet de chacune d'entre elles.
ContactInfo est un champ qui contient un texte libre, y compris les adresses e-mail et les numéros de téléphone des entreprises. Nous voulons extraire chaque adresse e-mail et chaque numéro de téléphone avec des expressions de graphique.
Nos besoins :
Les adresses e-mail doivent remplir un ensemble spécifique de conditions et respecter certaines règles syntaxiques.
Les numéros de téléphone doivent être des numéros de téléphone NANP de 10 chiffres. Nous voulons permettre le placement entre parenthèses de l'indicatif régional et autoriser les espaces vides et les traits d'union à certains endroits.
Script de chargement
BusinessContactInfo:
Load * Inline `
ID CompanyName ContactInfo
1 Company A Email is: Company1@example.com, Phone number is: (123) 456-7890
2 Company B Email is: company2@test.com, Phone # is: 0123456790
3 Company C Email is: company3@placeholder.com, Phone no. is: 234-567-8901
` (delimiter is '\t');
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :
CompanyName
Ajoutez les dimensions calculées suivantes au tableau :
La même expression régulière composite est réutilisée pour récupérer des informations différentes. L'argument group spécifie lequel des deux groupes de l'expression régulière doit faire l'objet de la recherche, et l'argument field_no spécifie la correspondance globale (sur l'ensemble de la chaîne) à trouver.
La variante ExtractRegEGroupI() de la fonction permet d'effectuer des recherches sans tenir compte de la casse.
Exemple 5 – Analyse d'URL (avec une comparaison ExtractRegEx() )
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Tableau nommé Correspondence, qui contient le texte de message e-mail dans un champ nommé EmailBody.
Contenu de message e-mail comportant des URL.
Nous voulons extraire la deuxième URL, le cas échéant, dans les composants suivants :
URL complète
Protocole
Domaine
Chemin d'accès
Nous voulons utiliser une seule expression régulière pour contrôler toutes les extractions.
Script de chargement
Correspondence:
Load * Inline `
ID EmailBody
1 Thanks again for this morning's meeting! You can find the meeting minutes posted here: https://example.com/resourceexample. If you still have any questions, always feel free to ask me or one of the other team members. Here are a few learning resources that might help you: http://www.example.ca/training1.pptx http://www.example.ca/training2.pptx http://www.example.ca/training3.pptx Thanks again!
2 Hi, you'll want to visit our company website for that, it's available at https://www.example.se.
3 Hello all, I just wanted to let you know that our online stores are now up and running! I couldn't be more excited. We are already seeing quite a bit of traffic and volume sold, which is very promising! For Product A, go to https://www.examplestore1.com/products. For Product B, you'll want go to https://www.examplestore2.com/products. Product C, go check out https://www.examplestore3.com/products. Cheers!
` (delimiter is '\t');
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :
ExtractRegEx() renvoie l'intégralité de l'URL, tandis que ExtractRegExGroup() renvoie des parties individuelles de l'URL, correspondant à la valeur group utilisée. L'enregistrement dont la valeur ID est égale à 2 ne contient qu'une seule URL, et aucune donnée n'est donc renvoyée pour cet enregistrement.
La même expression régulière est utilisée dans toutes les expressions de graphique pour renvoyer différentes informations. La répartition des groupes définis dans l'expression régulière est la suivante.
Groupes dans l'expression régulière
Numéro de groupe
Regex
Partie d'URL
1
([a-zA-Z0-9]+)
Protocole
2
(([a-zA-Z0-9]+\.)*([a-zA-Z0-9]+)\.([a-zA-Z0-9]+))
Domaine (groupes 3, 4 et 5)
3
([a-zA-Z0-9]+\.)*
Domaine racine
4
([a-zA-Z0-9]+)
Domaine de niveau supérieur
5
([a-zA-Z0-9]+)
Chemin d'accès (groupes 7, 8, 9 et 10) (facultatif)
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !