Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: NoSQL
Den här funktionen tillhandahåller reguljära uttrycksfunktioner. Reguljära uttryck är en koncis och flexibel notation för att hitta textmönster.
Kommentar
Azure Cosmos DB för NoSQL använder PERL-kompatibla reguljära uttryck (PCRE).
Syntax
RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])
Argument
| beskrivning | |
|---|---|
string_expr_1 |
Ett stränguttryck som ska sökas igenom. |
string_expr_2 |
Ett stränguttryck med ett reguljärt uttryck som definierats att använda när du söker i string_expr_1. |
string_expr_3
(Valfritt) |
Ett valfritt stränguttryck med de valda modifierare som ska användas med det reguljära uttrycket (string_expr_2). Om det inte anges är standardinställningen att köra matchningen av reguljära uttryck utan modifierare. |
Kommentar
Att ange en tom sträng för string_expr_3 är funktionellt likvärdigt med att utelämna argumentet.
Returtyper
Returnerar ett booleskt uttryck.
Exempel
I följande exempel visas reguljära uttryck som matchar med hjälp av några olika modifierare.
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
}
]
I nästa exempel förutsätts att du har en container med objekt inklusive ett name fält.
[
{
"name": "Tecozow coat",
"category": "winter-coats"
},
{
"name": "Bladnick coat",
"category": "winter-coats"
},
{
"name": "Anidin heavy jacket",
"category": "winter-coats"
}
]
I det här exemplet används en reguljär uttrycksmatchning som ett filter för att returnera en delmängd av objekt.
SELECT VALUE
p.name
FROM
products p
WHERE
p.category = "winter-coats" AND
RegexMatch(p.name, " coat{1}")
[
"Tecozow coat",
"Bladnick coat"
]
Kommentarer
- Den här funktionen drar endast nytta av ett intervallindex om det reguljära uttrycket kan delas upp i antingen
StartsWith,EndsWith,ContainsellerStringEqualsmotsvarande systemfunktioner. - Returnerar
undefinedom stränguttrycket som ska sökas (string_expr_1), reguljärt uttryck (string_expr_2) eller de valda modifierarna (string_expr_3) är ogiltiga. - Den här funktionen stöder följande fyra modifierare: | | Format | Beskrivning | | --- | --- | --- | | Flera rader |
m| Behandla stränguttrycket som ska genomsökas som flera rader. Utan det här alternativet matchar tecknen^och$i början eller slutet av strängen och inte varje enskild rad. | | Matcha valfri sträng |s| Tillåt "." för att matcha alla tecken, inklusive ett nytt radtecken. | | Ignorera skiftläge |i| Ignorera skiftläge vid mönstermatchning. | | Ignorera blanksteg |x| Ignorera alla blankstegstecken. | - Om du vill använda ett metatecken i ett reguljärt uttryck och inte vill att det ska ha någon särskild betydelse bör du undvika metakaraktern med hjälp av
\.