Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: Sql Server 2025 (17.x)
Database
SQL di Azure Istanza
gestita di SQL di Azurein Microsoft Fabric
Restituisce una tabella delle sottostringhe catturate che corrispondono a un pattern di espressione regolare a una stringa. Se non viene trovata alcuna corrispondenza, la funzione non restituisce alcuna riga.
REGEXP_MATCHES
(
string_expression,
pattern_expression [ , flags ]
)
Richiede il livello di compatibilità del database 170. Per impostare il livello di compatibilità del database, esaminare il livello di compatibilità ALTER DATABASE (Transact-SQL).
Note
Le espressioni regolari sono disponibili in Istanza gestita di SQL di Azure con i criteri di aggiornamentodi SQL Server 2025 o Always-up-to-date.
Arguments
string_expression
Espressione di una stringa di caratteri.
Può essere una costante, una variabile o una colonna di stringa di caratteri.
Tipi di dati: char, nchar, varcharo nvarchar.
Note
Le REGEXP_LIKEfunzioni , REGEXP_COUNTe REGEXP_INSTR supportano i tipi LOB (varchar(max) e nvarchar(max)) fino a 2 MB per il parametro string_expression .
pattern_expression
Criterio di espressione regolare da trovare. In genere un valore letterale di testo.
Tipi di dati: char, nchar, varcharo nvarchar. pattern_expression supporta una lunghezza massima di caratteri di 8.000 byte.
flags
Uno o più caratteri che specificano i modificatori usati per la ricerca di corrispondenze. Il tipo è varchar o char, con un massimo di 30 caratteri.
Ad esempio: ims. Il valore predefinito è c. Se viene specificata una stringa vuota (' '), verrà considerata come valore predefinito ('c'). Specificare c o qualsiasi altra espressione di carattere. Se il flag contiene più caratteri contraddittori, SQL Server usa l'ultimo carattere.
Ad esempio, se si specifica ic l'espressione regolare restituisce la corrispondenza con distinzione tra maiuscole e minuscole.
Se il valore contiene un carattere diverso da quelli elencati in Valori flag supportati, la query restituisce un errore simile all'esempio seguente:
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Valori dei flag supportati
| Flag | Description |
|---|---|
i |
Senza distinzione tra maiuscole e minuscole (impostazione predefinita false) |
m |
Modalità a più righe: ^ e $ corrispondenza della riga iniziale/finale oltre al testo di inizio/fine (impostazione predefinita false) |
s |
Let . match \n (impostazione predefinita false) |
c |
Distinzione tra maiuscole e minuscole (impostazione predefinita true) |
Returns
Restituisce un risultato tabulare come segue:
| Nome colonna | Tipo di dati | Description |
|---|---|---|
match_id |
bigint | Sequenza di parole corrispondenti. |
start_position |
int | Posizione di indice iniziale. |
end_position |
int | Posizione dell'indice finale. |
match_value |
Stesso tipo di string_expression o varchar |
Espressione corrispondente. |
substring_matches |
json | Documento JSON che descrive la corrispondenza. |
Examples
Restituisce risultati tabulari da 'Learning #AzureSQL #AzureSQLDB' che iniziano con un # carattere seguito da uno o più caratteri alfanumerici (A-Z, a-z, 0-9) o caratteri di sottolineatura (_).
SELECT *
FROM REGEXP_MATCHES ('Learning #AzureSQL #AzureSQLDB', '#([A-Za-z0-9_]+)');
match_id start_position end_position match_value substring_matches
1 10 18 #AzureSQL [{"value":"AzureSQL","start":11,"length":8}]
2 20 30 #AzureSQLDB [{"value":"AzureSQLDB","start":21,"length":10}]
Restituisce stringhe da ABC che corrispondono a stringhe che iniziano con la lettera A seguita da esattamente due caratteri.
SELECT *
FROM REGEXP_MATCHES ('ABC', '^(A)(..)$');
match_id start_position end_position match_value substring_matches
1 1 3 ABC [{"value":"A","start":1,"length":1},{"value":"BC","start":2,"length":2}]