REGEXP_SUBSTR funzione scalare
La funzione scalare REGEXP_SUBSTR restituisce una ricorrenza di una sottostringa di una stringa che corrisponde al modello di espressione regolare.
Lo schema è SYSIBM.
- stringa - origine
- Un'espressione che specifica la stringa in cui deve essere eseguita la ricerca. Questa espressione deve restituire una stringa di caratteri integrata, una stringa grafica, un valore numerico, un valore booleano o un valore data / ora. Un valore, Boolean o datetime numerico viene implicitamente assegnato a VARCHAR prima che la funzione venga valutata. Una stringa di carattere non può specificare l'attributo FOR BIT DATA (SQLSTATE 42815).
- espressione - modello
- Un'espressione che specifica la stringa dell'espressione regolare che è il modello per la ricerca. Questa espressione deve restituire una stringa di caratteri integrata, una stringa grafica, un valore numerico, un valore booleano o un valore data / ora. Un valore, Boolean o datetime numerico viene implicitamente assegnato a VARCHAR prima che la funzione venga valutata. La lunghezza di un'espressione CLOB o DBCLOB non deve essere maggiore della lunghezza massima di un tipo di dati VARCHAR o VARGRAPHIC. Una stringa di carattere non può specificare l'attributo FOR BIT DATA (SQLSTATE 42815).
- avvia
- Un'espressione che specifica la posizione all'interno di source - string da cui deve iniziare la ricerca. L'espressione deve restituire una stringa di caratteri incorporata, una stringa grafica, Booleano o un valore numerico. Se il valore non è di tipo INTEGER, viene implicitamente assegnato a INTEGER prima che la funzione venga valutata. Il valore del numero intero deve essere maggiore o uguale a 1. Se viene specificato OCTETS e la stringa di origine è un dato grafico, il valore del numero intero deve essere dispari (SQLSTATE 428GC). Il valore iniziale predefinito è 1. Vedere la descrizione del parametro per CODEUNITS16, CODEUNITS32o OCTETS per l'unità stringa che si applica alla posizione iniziale.
- ricorrenza
- Un'espressione che specifica la ricorrenza dell'espressione del pattern all'interno di source - string da ricercare. L'espressione deve restituire una stringa di caratteri incorporata, una stringa grafica, Booleano o un valore numerico. Se il valore non è di tipo INTEGER, viene implicitamente assegnato a INTEGER prima che la funzione venga valutata. Il valore di ricorrenza deve essere maggiore o uguale a 1. Il valore di ricorrenza predefinito è 1, che indica che viene considerata solo la prima ricorrenza dell'espressione del pattern.
- indicatori
- Un'espressione che specifica gli indicatori che controllano gli aspetti della corrispondenza del modello. L'espressione deve restituire una stringa di caratteri incorporata che non specifichi l'attributo FOR BIT DATA (SQLSTATE 42815). La stringa può includere uno o più valori di indicatore validi e la combinazione di valori di indicatore deve essere valida (SQLSTATE 2201T). Una stringa vuota è uguale al valore 'c'. Il valore dell'indicatore predefinito è 'c '.
Tabella 1. Valori di indicatore supportati Valore indicatore Descrizione c Specifica che la corrispondenza è sensibile al maiuscolo / minuscolo. Questo indicatore è il valore predefinito se non è specificato 'c'o' i '. Questo valore non deve essere specificato con un valore 'i'. i Specifica che la corrispondenza non è sensibile al maiuscolo / minuscolo. Questo valore non deve essere specificato con il valore 'c'. m Specifica che i dati di input possono contenere più di una riga. Per impostazione predefinita, '^' in un pattern corrisponde solo all'inizio della stringa di input; ' $' in un pattern corrisponde solo alla fine della stringa di input. Se questo indicatore è impostato, "^" e "$" corrispondono anche all'inizio e alla fine di ogni riga all'interno della stringa di input. n Specifica che '.' in un modello corrisponde a un carattere di terminazione riga nella stringa di input. Per impostazione predefinita, il carattere '.' in un pattern non corrisponde a un carattere di terminazione riga. Una coppia ritorno a capo e avanzamento riga nella stringa di input si comporta come un carattere di terminazione a riga singola e corrisponde a un singolo "." in un modello. s Specifica che '.' in un modello corrisponde a un carattere di terminazione riga nella stringa di input. Questo valore è un sinonimo di 'n' valore. x Specifica che i caratteri spazio vuoto in un modello vengono ignorati, a meno che non venga eseguito l'escape. - gruppo
- Un'espressione che specifica quale gruppo di cattura dell'espressione del pattern all'interno della stringa origine restituire. L'espressione deve restituire un carattere integrato, una stringa binaria o graficao un valore booleano. Se il valore non è di tipo INTEGER, viene implicitamente assegnato a INTEGER prima che la funzione venga valutata. Il valore del gruppo deve essere maggiore o uguale a 0 e non deve essere maggiore del numero di gruppi di cattura nell'espressione del modello (SQLSTATE 22546). Il valore del gruppo predefinito è 0, che indica che deve essere restituita la stringa che corrisponde all'intero modello.
- CODEUNITS16, CODEUNITS32o OCTETS
- Specifica l'unità stringa del valore iniziale:
- CODEUNITS16 specifica che il valore iniziale è espresso in unità di codice UTF-16 a 16 bit.
- CODEUNITS32 specifica che il valore iniziale è espresso in unità di codice UTF-32 a 32 bit. Questa è l'impostazione predefinita.
- OCTETS specifica che il valore iniziale è espresso in byte.
Se l'unità stringa viene specificata come CODEUNITS16 o OCTETS, e se l'unità stringa della stringa di origine è CODEUNITS32, viene restituito un errore (SQLSTATE 428GC).
Per ulteriori informazioni, consultare "Unità stringa nelle funzioni integrate" in Stringhe di carattere.
Risultato
Il risultato della funzione è una stringa. Il tipo di dati della stringa è lo stesso tipo di dati della stringa di origine, ad eccezione di CHAR, che diventa VARCHAR; e GRAPHIC, che diventa e VARGRAPHIC. L'attributo lunghezza del tipo di dati del risultato è uguale all'attributo lunghezza della stringa di origine. La lunghezza effettiva del risultato è la lunghezza della ricorrenza nella stringa che corrisponde all'espressione di modello. Se l'espressione del modello non viene trovata, il risultato è il valore null.
Il risultato della funzione REGEXP_SUBSTR può essere null. Se un argomento è null, il risultato è il valore null.
Note
- L'elaborazione dell'espressione regolare viene eseguita utilizzando l'interfaccia dell'espressione regolare ICU (International Components for Unicode).
- Considerazioni per i database non Unicode:
- Un modello di espressione regolare supporta solo caratteri di controllo halfwidth; utilizzare un tipo di dati stringa di caratteri per l'argomento dell'espressione del modello. Un tipo di dati stringa di caratteri può essere utilizzato per l'argomento dell'espressione del pattern anche quando viene utilizzato un tipo di dati stringa grafica per l'argomento della stringa di origine.
- L'argomento della stringa di origine deve essere un tipo di dati della stringa grafica se l'argomento dell'espressione del pattern è un tipo di dati della stringa grafica.
Esempi
- Restituisce la stringa che corrisponde a qualsiasi carattere che precede una 'o'.
Il risultato è 'lo '.SELECT REGEXP_SUBSTR('hello to you', '.o',1,1) FROM sysibm.sysdummy1 - Restituisce la seconda ricorrenza della stringa che corrisponde a qualsiasi carattere che precede una 'o'.
Il risultato è 'a '.SELECT REGEXP_SUBSTR('hello to you', '.o',1,2) FROM sysibm.sysdummy1 - Restituisce la terza ricorrenza di stringa che corrisponde a qualsiasi carattere che precede una 'o'.
Il risultato è "yo".SELECT REGEXP_SUBSTR('hello to you', '.o',1,3) FROM sysibm.sysdummy1
