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 in
StartsWith
,EndsWith
ofContains
StringEquals
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
\
.