Delen via


RegexMatch (NoSQL-query)

VAN TOEPASSING OP: NoSQL

Deze functie biedt reguliere expressiemogelijkheden. Reguliere expressies zijn een beknopte en flexibele notatie voor het vinden van tekstpatronen.

Notitie

Azure Cosmos DB for NoSQL maakt gebruik van PERL-compatibele reguliere expressies (PCRE).

Syntaxis

RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])  

Argumenten

Beschrijving
string_expr_1 Een tekenreeksexpressie die moet worden doorzocht.
string_expr_2 Een tekenreeksexpressie met een reguliere expressie die is gedefinieerd voor gebruik bij het zoeken string_expr_1.
string_expr_3(Optioneel) Een optionele tekenreeksexpressie met de geselecteerde modifiers die moeten worden gebruikt met de reguliere expressie (string_expr_2). Als deze niet is opgegeven, wordt de reguliere expressie standaard uitgevoerd met geen modifiers.

Notitie

Het opgegeven gebruik van een lege tekenreeks string_expr_3 is functioneel gelijk aan het weglaten van het argument.

Retourtypen

Retourneert een Boole-expressie.

Voorbeelden

In het volgende voorbeeld ziet u overeenkomsten met reguliere expressies met een aantal verschillende wijzigingsaanpassingen.

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
  }
]

In het volgende voorbeeld wordt ervan uitgegaan dat u een container hebt met items, waaronder een name veld.

[
  {
    "name": "Tecozow coat",
    "category": "winter-coats"
  },
  {
    "name": "Bladnick coat",
    "category": "winter-coats"
  },
  {
    "name": "Anidin heavy jacket",
    "category": "winter-coats"
  }
]

In dit voorbeeld wordt een reguliere expressieovereenkomst gebruikt als filter om een subset van items te retourneren.

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.category = "winter-coats" AND    
    RegexMatch(p.name, " coat{1}")
[
  "Tecozow coat",
  "Bladnick coat"
]

Opmerkingen

  • Deze functie profiteert alleen van een bereikindex als de reguliere expressie kan worden onderverdeeld inStartsWith, EndsWithof ContainsStringEquals gelijkwaardige systeemfuncties.
  • Retourneert undefined of de tekenreeksexpressie die moet worden doorzocht (string_expr_1), de reguliere expressie (string_expr_2) of de geselecteerde modifiers (string_expr_3) ongeldig zijn.
  • Deze functie ondersteunt de volgende vier modifiers: | | Opmaak | Beschrijving | | --- | --- | --- | | Meerdere regels | m | Behandel de tekenreeksexpressie die moet worden doorzocht als meerdere regels. Zonder deze optie komen de tekens ^ en $ overeenkomen aan het begin of einde van de tekenreeks en niet aan elke afzonderlijke regel. | | Een willekeurige tekenreeks | s vergelijken | Hiermee staat u toe dat '' overeenkomt met een willekeurig teken, inclusief een nieuw regelteken. | | | i Hoofdlettergebruik negeren | Negeer hoofdletters bij het vergelijken van patronen. | | Witruimte | x negeren | Alle spaties negeren. |
  • Als u een meta-teken in een reguliere expressie wilt gebruiken en deze geen speciale betekenis wilt hebben, moet u de metacharacter escapen met behulp van \.