RegexMatch (query NoSQL)
SI APPLICA A: NoSQL
Questa funzione fornisce funzionalità di espressione regolare. Le espressioni regolari sono un metodo di notazione conciso e flessibile per la ricerca di testo che soddisfa determinati criteri.
Nota
Azure Cosmos DB per NoSQL usa espressioni regolari compatibili con PERL (PCRE).
Sintassi
RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])
Argomenti
Descrizione | |
---|---|
string_expr_1 |
Espressione stringa in cui eseguire la ricerca. |
string_expr_2 |
Espressione stringa con un'espressione regolare definita da usare durante la ricerca di string_expr_1 . |
string_expr_3 (Facoltativo) |
Espressione stringa facoltativa con i modificatori selezionati da usare con l'espressione regolare (string_expr_2 ). Se non specificato, l'impostazione predefinita consiste nell'eseguire la corrispondenza dell'espressione regolare senza modificatori. |
Nota
Fornire una stringa vuota per string_expr_3
è funzionalmente equivalente all'omissione dell'argomento.
Tipi restituiti
Restituisce un'espressione booleana.
Esempi
Nell'esempio seguente vengono illustrate le corrispondenze di espressioni regolari usando alcuni modificatori diversi.
SELECT VALUE {
noModifiers: RegexMatch("abcd", "ABC"),
caseInsensitive: RegexMatch("abcd", "ABC", "i"),
wildcardCharacter: RegexMatch("abcd", "ab.", ""),
ignoreWhiteSpace: RegexMatch("abcd", "ab c", "x"),
caseInsensitiveAndIgnoreWhiteSpace: RegexMatch("abcd", "aB c", "ix"),
containNumberBetweenZeroAndNine: RegexMatch("03a", "[0-9]"),
containPrefix: RegexMatch("salt3824908", "salt{1}"),
containsFiveLetterWordStartingWithS: RegexMatch("shame", "s....", "i")
}
[
{
"noModifiers": false,
"caseInsensitive": true,
"wildcardCharacter": true,
"ignoreWhiteSpace": true,
"caseInsensitiveAndIgnoreWhiteSpace": true,
"containNumberBetweenZeroAndNine": true,
"containPrefix": true,
"containsFiveLetterWordStartingWithS": true
}
]
Nell'esempio seguente si presuppone che sia presente un contenitore con elementi che includono un name
campo.
[
{
"name": "Tecozow coat",
"category": "winter-coats"
},
{
"name": "Bladnick coat",
"category": "winter-coats"
},
{
"name": "Anidin heavy jacket",
"category": "winter-coats"
}
]
In questo esempio viene utilizzata una corrispondenza di espressione regolare come filtro per restituire un subset di elementi.
SELECT VALUE
p.name
FROM
products p
WHERE
p.category = "winter-coats" AND
RegexMatch(p.name, " coat{1}")
[
"Tecozow coat",
"Bladnick coat"
]
Osservazioni:
- Questa funzione trae vantaggio da un indice di intervallo solo se l'espressione regolare può essere suddivisa in
StartsWith
funzioni di sistema equivalenti ,EndsWith
Contains
, oStringEquals
. - Restituisce
undefined
se l'espressione stringa da cercare (string_expr_1
), l'espressione regolare (string_expr_2
) o i modificatori selezionati (string_expr_3
) non sono validi. - Questa funzione supporta i quattro modificatori seguenti: | | Formato | Descrizione | | --- | --- | --- | | Più righe |
m
| Considerare l'espressione stringa da cercare come più righe. Senza questa opzione, i caratteri^
e$
le corrispondenze all'inizio o alla fine della stringa e non a ogni singola riga. | | Trova la corrispondenza con qualsiasi stringa |s
| Consenti a "." di trovare la corrispondenza con qualsiasi carattere, incluso un carattere di nuova riga. | | Ignora maiuscole/minuscole |i
| Ignorare la distinzione tra maiuscole e minuscole quando i criteri di ricerca corrispondono. | | Ignora spazi vuoti |x
| Ignorare tutti i caratteri di spazio vuoto. | - Se si vuole usare un meta-carattere in un'espressione regolare e non si vuole che abbia un significato speciale, è consigliabile eseguire l'escape del metacaracter usando
\
.