ExtractRegExGroup - funzione dello script e del grafico
ExtractRegExGroup() estrae il testo dall'espressione di una stringa di input utilizzando il modello di espressione regolare composita specificato. Quando si utilizza la funzione, specificare il gruppo da utilizzare all'interno dell'espressione regolare composita. La funzione restituisce un valore null se non vengono trovate corrispondenze.
Se si utilizza la funzione ExtractRegExGroup() in un'istruzione LOAD e il valore field_no viene omesso, la funzione restituirà più record. Se diversi campi vengono caricati utilizzando ExtractRegExGroup(), vengono creati i prodotti cartesiani di tutte le combinazioni.
Questa funzione esegue operazioni regex che distinguono tra maiuscole e minuscole. In alternativa, è possibile utilizzare la variante ExtractRegExGroupI() per eseguire operazioni regex senza distinzione tra maiuscole e minuscole.
Sintassi:
ExtractRegExGroup
(text, regex, group [, field_no])
Tipo di dati restituiti: stringa
Argomenti
Argomento
Descrizione
text
L'espressione stringa contenente il testo da estrarre nel valore restituito.
regex
L'espressione regolare da utilizzare per estrarre il testo.
group
Il numero del gruppo, nel caso di un'espressione regolare composita.
Se l'espressione regolare contiene solo un gruppo, utilizzare invece la funzione ExtractRegEx(). In alternativa, utilizzare ExtractRegExGroup() con un valore group di 0.
È possibile specificare un valore group negativo per cercare le corrispondenze da destra a sinistra.
field_no
Il numero della corrispondenza da estrarre. Questo è utile quando nel testo si possono trovare più corrispondenze per l'espressione regolare. Per esempio, specificare il valore 4 per estrarre la quarta corrispondenza.
Questo argomento è facoltativo. Se non viene specificata, l'impostazione predefinita è 1.
Restituisce 456 (secondo gruppo della seconda corrispondenza).
Casi d'uso
È possibile utilizzare Extract RegEx() per estrarre le informazioni che si desidera isolare dai dati che possono contenere anche altre informazioni (ad esempio, testo libero o stringhe JSON). Ad esempio:
Estrarre indirizzi e-mail, numeri di telefono, numeri di conto e altre informazioni da un testo.
Estrarre valori numerici da un testo (ad esempio, la valuta).
Standardizzare la formattazione dei dati numerici o di testo.
Esempio 1 - script di caricamento per analizzare i codici delle transazioni
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Una tabella denominata Transactions, che contiene informazioni sulle transazioni. Alcuni dettagli vengono acquisiti con i codici delle transazioni utilizzando la seguente sintassi:
Anno della transazione-Origine della transazione (cioè acquisto online o in negozio)-Centro di distribuzione associato
La creazione di diversi nuovi campi per estrarre ogni dettaglio, ognuno dei quali riutilizza la stessa espressione regolare composita.
Requisiti:
L'anno può essere una qualsiasi combinazione di quattro numeri.
I valori ONLINE e INSTORE sono gli unici accettabili per l'origine della transazione.
Il centro di distribuzione deve avere esattamente cinque numeri.
Script di caricamento
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
`;
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
RecordID
TransactionCode
TransactionCode_Unparsed
TransactionYear
TransactionSource
TransactionDC
Tabella dei risultati
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
Questi risultati evidenziano come l'argomento group permette di riutilizzare una singola espressione regex per più operazioni. Il campo TransactionCode_Unparsed, che utilizza un valore group di 0, non fornisce alcun valore aggiuntivo in questo caso, ma viene mostrato qui per dimostrare la funzione.
Esempio 2 - script di caricamento per estrarre le informazioni di contatto dell'azienda
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Una tabella denominata BusinessContactInfo, che contiene informazioni sulle aziende trovate sul sito web di ciascuna azienda.
ContactInfo è un campo che contiene testo libero, compresi gli indirizzi e-mail e i numeri di telefono dell'azienda.
La creazione di diversi nuovi campi per estrarre ogni dettaglio, ognuno dei quali riutilizza la stessa espressione regolare composita.
Requisiti:
Gli indirizzi e-mail devono soddisfare una serie di requisiti e di sintassi specifici.
I numeri di telefono devono seguire il sistema NANP (piano di numerazione nordamericano), con 10 cifre. Bisogna consentire che il prefisso sia racchiuso tra parentesi, oltre alla presenza di spazi vuoti e trattini in alcuni punti.
Script di caricamento
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');
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
CompanyName
CompanyEmail
CompanyPhoneNum
Tabella dei risultati
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 stessa espressione regolare composita viene riutilizzata per recuperare informazioni diverse. L'argomento group specifica quale dei due gruppi dell'espressione regolare ricercare, e l'argomento field_no specifica quale la corrispondenza complessiva (nell'intera stringa) che si desidera trovare.
La variante ExtractRegEGroupxI() della funzione assicura la ricerca senza distinzione tra maiuscole e minuscole.
Esempio 3 - script di caricamento per estrarre i componenti dai codici ISBN
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
La creazione di una variabile, ISBN_RegEx, per memorizzare l'espressione regolare che si desidera utilizzare per tutte le estrazioni.
Un set di codici ISBN per i libri che una libreria vuole ordinare da diversi fornitori.
Bisogna estrarre i seguenti valori da ciascun codice ISBN:
EAN
Gruppo
Soggetto registrato
Pubblicazione
Checksum
Script di caricamento
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
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
Supplier
EAN
Group
Registrant
Publication
Checksum
Tabella dei risultati
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
Esempio 4 - espressioni dei grafici per estrarre informazioni sui contatti aziendali (con confronto con ExtractRegEx() ).
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Una tabella denominata BusinessContactInfo, che contiene informazioni sulle aziende trovate sul sito web di ciascuna azienda.
ContactInfo è un campo che contiene testo libero, compresi gli indirizzi e-mail e i numeri di telefono dell'azienda. Bisogna estrarre ogni indirizzo e-mail e numero di telefono con le espressioni dei grafici.
Requisiti:
Gli indirizzi e-mail devono soddisfare una serie di requisiti e di sintassi specifici.
I numeri di telefono devono seguire il sistema NANP (piano di numerazione nordamericano), con 10 cifre. Bisogna consentire che il prefisso sia racchiuso tra parentesi, oltre alla presenza di spazi vuoti e trattini in alcuni punti.
Script di caricamento
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');
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:
CompanyName
Aggiungere la seguente dimensione calcolata alla tabella:
La stessa espressione regolare composita viene riutilizzata per recuperare informazioni diverse. L'argomento group specifica quale dei due gruppi dell'espressione regolare ricercare, e l'argomento field_no specifica quale la corrispondenza complessiva (nell'intera stringa) che si desidera trovare.
La variante ExtractRegEGroupI() della funzione assicura la ricerca senza distinzione tra maiuscole e minuscole.
Esempio 5 - Analisi dell'URL (con confronto con ExtractRegEx() )
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Una tabella denominata Correspondence, che contiene il testo del messaggio e-mail in un campo denominato EmailBody.
Contenuto del messaggio e-mail che contiene URL web.
Bisogna estrarre il secondo URL, se presente, nei seguenti componenti:
URL completo
Protocollo
Dominio
Percorso
Bisogna utilizzare un'unica espressione regolare per controllare tutte le estrazioni.
Script di caricamento
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');
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:
ExtractRegEx() restituisce l'intero URL, mentre ExtractRegExGroup() restituisce singole parti dell'URL, corrispondenti al valore group che è stato utilizzato. Il record con un valore per ID uguale a 2 contiene solo un URL, quindi non viene restituito alcun dato.
La stessa espressione regolare viene utilizzata in tutte le espressioni dei grafici per restituire diverse informazioni. La scomposizione dei gruppi definiti nell'espressione regolare è la seguente.
Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!