Partager via


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 ou StringEquals 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 \.