SubFieldRegEx - funzione dello script e del grafico
SubFieldRegEx() estrae il testo da un'espressione di stringa di input utilizzando il modello di espressione regolare specificato come delimitatore. La funzione restituisce un valore null se non vengono trovate corrispondenze.
Questa funzione esegue operazioni regex che distinguono tra maiuscole e minuscole. In alternativa, è possibile utilizzare la variante SubFieldRegExI() per eseguire operazioni regex senza distinzione tra maiuscole e minuscole.
Il testo della stringa di input in cui si desidera cercare il modello di un'espressione regolare.
regex_delimiter
Espressione stringa contenente l'espressione regolare da utilizzare come delimitatore. È possibile specificare più di un delimitatore nello stesso modello di espressione regolare, separandoli con un carattere | (barra verticale).
field_no
Valore intero che indica il numero della suddivisione che si desidera estrarre. Per esempio, specificare il valore 4 per estrarre la quarta suddivisione. Questo argomento è facoltativo.
Le seguenti indicazioni si applicano indipendentemente dal fatto che la funzione sia utilizzata in uno script di caricamento o in un'espressione del grafico:
Se field_no è un valore positivo, la funzione restituirà un valore, identificando le corrispondenze da sinistra a destra.
Se field_no è un valore negativo, la funzione restituirà un valore, identificando le corrispondenze da destra a sinistra.
Quando si utilizza la funzione in uno script di caricamento:
Se si utilizza la funzione SubFieldRegEx() in un'istruzione LOAD e il valore field_no viene omesso, la funzione genera tanti record quante sono le corrispondenze.
Se diversi campi vengono caricati utilizzando SubFieldRegEx() e nessuno di essi specifica un argomento field_no, vengono creati i prodotti cartesiani per tutte le combinazioni.
Quando utilizzare la funzione in un espressione del grafico:
Se field_no viene omesso, il valore predefinito è 1.
Esempi di funzioni
Esempio
Risultato
SubFieldRegEx('a,b c;1 2,3',' |,|;', 1)
Restituisce a. In questo esempio, vengono specificati tre caratteri delimitatori (spazio, virgola e punto e virgola).
SubFieldRegEx('a;b;c;1;2;3',';', 2)
Restituisce b. In questo caso, viene specificato solo un carattere delimitatore (punto e virgola).
SubFieldRegEx('a,b c;1 2,3',' |,|;', 4)
Restituisce 1.
Casi d'uso
È possibile utilizzare SubFieldRegEx() per estrarre più valori singoli da un elenco delimitato. Per esempio, se si dispone di un elenco con i valori separati da virgole all'interno di un blocco più grande di linguaggio naturale, è possibile utilizzare questa funzione per isolare ogni singolo valore dell'elenco in un nuovo record del modello dati.
Esempio 1 - script di caricamento per separare i tag in base alla transazione
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
La tabella Transaction_By_Tag, che inizialmente contiene i dati della transazione. Questi dati vengono elaborati per estrarre i valori dei singoli tag in nuovi record.
La creazione di un campo, TransactionTag, per memorizzare i valori dei tag estratti.
Nel campo contenente i tag della transazione, più tag sono contenuti in stringhe di testo, separate da delimitatori. Il delimitatore può essere uno dei seguenti caratteri: , | ;
Script di caricamento
Transaction_By_Tag:
Load SubFieldRegEx(Tags, ',|;|\|') as TransactionTag,
* Inline [
ID Product Tags Amount
1 Product A Special order,Eligible for return,Warranty included 100.93
2 Product B Ineligible for return|No warranty available 51.11
3 Product C No warranty available 12.83
4 Product B Special order;Liquidation sale;Warranty included 209.48
] (delimiter is '\t');
drop fields Tags;
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
ID
Product
TransactionTag
Tabella dei risultati
ID
Product
TransactionTag
1
Product A
Eligible for return
1
Product A
Warranty included
1
Product A
Special order
2
Product B
No warranty available
2
Product B
Ineligible for return
3
Product C
No warranty available
4
Product B
Liquidation sale
4
Product B
Special order
4
Product B
Warranty included
Questo esempio dimostra che, se utilizzata in uno script di caricamento, la funzione SubFieldRegEx() restituisce una riga separata per ogni corrispondenza trovata nella stringa di input.
Esempio 2 - espressioni dei grafici per separare i tag in base alla transazione
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
La tabella Transaction_By_Tag, che contiene i dati della transazione.
Un campo, Tags, che contiene stringhe di testo per memorizzare tutti i tag associati a una transazione.
Requisiti:
Nel campo contenente i tag della transazione, più tag sono contenuti in stringhe di testo, separate da delimitatori. Il delimitatore può essere uno dei seguenti caratteri: , | ;
Bisogna utilizzare le espressioni dei grafici per separare ogni tag nel proprio campo, con un massimo di tre tag da aggiungere a una transazione.
Script di caricamento
Transaction_By_Tag:
Load * Inline [
ID Product Tags Amount
1 Product A Special order, Eligible for return, Warranty included 100.93
2 Product B Ineligible for return | No warranty available 51.11
3 Product C No warranty available 12.83
4 Product B Special order;Liquidation sale;Warranty included 209.48
] (delimiter is '\t');
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
ID
Tags
Aggiungere le seguenti dimensioni calcolate:
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
Tabella dei risultati
ID
Tags
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
1
Special order, Eligible for return, Warranty included
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!