RegexMatch (requête NoSQL)
S’APPLIQUE À : NoSQL
Cette fonction fournit des fonctionnalités d’expressions régulières. Les expressions régulières sont des notations concises et souples pour la recherche de modèles de texte.
Notes
Azure Cosmos DB for NoSQL utilise des PCRE (PERL compatible regular expressions).
Syntaxe
RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])
Arguments
Description | |
---|---|
string_expr_1 |
Expression de chaîne à rechercher. |
string_expr_2 |
Expression de chaîne avec une expression régulière définie à utiliser lors d’une recherche string_expr_1 . |
string_expr_3 (Facultatif) |
Expression de chaîne facultative avec les modificateurs sélectionnés à utiliser avec l’expression régulière (string_expr_2 ). Si elle n’est pas fournie, la valeur par défaut consiste à exécuter la correspondance d’expression régulière sans modificateurs. |
Notes
Fournir une chaîne vide pour string_expr_3
équivaut fonctionnellement à omettre l’argument.
Types de retour
Retourne une expression booléenne.
Exemples
L’exemple suivant illustre des correspondances d’expression régulière en utilisant quelques modificateurs différents.
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
}
]
L’exemple suivant suppose que vous disposez d’un conteneur avec des éléments, y compris un champ name
.
[
{
"name": "Tecozow coat",
"category": "winter-coats"
},
{
"name": "Bladnick coat",
"category": "winter-coats"
},
{
"name": "Anidin heavy jacket",
"category": "winter-coats"
}
]
Cet exemple utilise une correspondance d’expression régulière comme filtre pour renvoyer un sous-ensemble d’éléments.
SELECT VALUE
p.name
FROM
products p
WHERE
p.category = "winter-coats" AND
RegexMatch(p.name, " coat{1}")
[
"Tecozow coat",
"Bladnick coat"
]
Remarques
- Cette fonction bénéficie d’un index de plage uniquement si l’expression régulière peut être divisée en
StartsWith
,EndsWith
,Contains
ouStringEquals
fonctions système équivalentes. - Renvoie
undefined
si l’expression de chaîne à rechercher (string_expr_1
), l’expression régulière (string_expr_2
) ou les modificateurs sélectionnés (string_expr_3
) ne sont pas valides. - Cette fonction prend en charge les quatre modificateurs suivants : | | Format | Description | | | --- | --- | --- | | Plusieurs lignes |
m
| Traitez l’expression de chaîne à rechercher en tant que plusieurs lignes. Sans cette option, les caractères^
et$
correspondent au début ou à la fin de la chaîne et non à chaque ligne individuelle. | | Faire correspondre à n’importe quelle chaîne |s
| Permettez à « . » de correspondre à n’importe quel caractère, y compris un caractère de saut de ligne. | | Ignorer la casse |i
| Ignorez la casse lors de la mise en correspondance de critères spéciaux. | | Ignorer les espaces blancs |x
| Ignorez tous les caractères d’espace blanc. | - Si vous voulez utiliser un métacaractère dans une expression régulière et que vous ne souhaitez pas qu’il ait une signification particulière, vous devez sortir le métacaractère en utilisant
\
.