RegexMatch (NoSQL-Abfrage)
GILT FÜR: NoSQL
Diese Funktion stellt Funktionalitäten für reguläre Ausdrücke bereit. Bei regulären Ausdrücken handelt es sich um eine präzise und flexible Notation zum Suchen von Textmustern.
Hinweis
Azure Cosmos DB for NoSQL verwendet mit Perl kompatible reguläre Ausdrücke (Perl Compatible Regular Expressions, PCRE).
Syntax
RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])
Argumente
BESCHREIBUNG | |
---|---|
string_expr_1 |
Ein Zeichenfolgenausdruck der durchsucht werden soll. |
string_expr_2 |
Ein Zeichenfolgenausdruck mit einem regulären Ausdruck, der für die Verwendung bei der Suche nach „string_expr_1 “ definiert wird. |
string_expr_3 (Optional) |
Ein optionaler Zeichenfolgenausdruck mit den ausgewählten Modifizierern, die mit dem regulären Ausdruck (string_expr_2 ) verwendet werden sollen. Falls nicht angegeben, wird standardmäßig die Übereinstimmung mit dem regulären Ausdruck ohne Modifizierer ausgeführt. |
Hinweis
Das Bereitstellen einer leeren Zeichenfolge für „string_expr_3
“ entspricht funktional dem Weglassen des Arguments.
Rückgabetypen
Gibt einen booleschen Ausdruck zurück.
Beispiele
Das folgende Beispiel zeigt Übereinstimmungen mit einem regulären Ausdruck mithilfe verschiederen Modifizierer.
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
}
]
Im nächsten Beispiel wird davon ausgegangen, dass Sie über einen Container mit Elementen und einem Feld namens „name
“ verfügen.
[
{
"name": "Tecozow coat",
"category": "winter-coats"
},
{
"name": "Bladnick coat",
"category": "winter-coats"
},
{
"name": "Anidin heavy jacket",
"category": "winter-coats"
}
]
In diesem Beispiel wird die Übereinstimmung mit einem regulären Ausdruck als Filter verwendet, um eine Teilmenge von Elementen zurückzugeben.
SELECT VALUE
p.name
FROM
products p
WHERE
p.category = "winter-coats" AND
RegexMatch(p.name, " coat{1}")
[
"Tecozow coat",
"Bladnick coat"
]
Bemerkungen
- Diese Funktion profitiert nur von einem Bereichsindex, wenn der reguläre Ausdruck entweder in „
StartsWith
“, „EndsWith
“, „Contains
“, oder „StringEquals
“ äquivalente Systemfunktionen unterteilt werden kann. - Die Funktion gibt „
undefined
“ zurück, wenn der zu durchsuchende Zeichenfolgenausdruck (string_expr_1
), der reguläre Ausdruck (string_expr_2
) oder die ausgewählten Modifizierer (string_expr_3
) ungültig sind. - Diese Funktion unterstützt die folgenden vier Modifizierer: | | Format | Beschreibung | | --- | --- | --- | | Mehrere Zeilen |
m
| Behandeln Sie den zu suchenden Zeichenfolgenausdruck als mehrere Zeilen. Ohne diese Option gleichen die Zeichen „^
“ und „$
“ den Anfang oder das Ende der Zeichenfolge ab und nicht jede einzelne Zeile. | | Übereinstimmung mit beliebiger Zeichenfolge |s
| Hiermit legen Sie fest, dass „.“ mit allen Zeichen übereinstimmt, einschließlich Neue-Zeile-Zeichen. | | Groß-/Kleinbuchstaben ignorieren |i
| Hiermit wird beim Musterabgleich die Groß-/Kleinschreibung ignoriert. | | Leerzeichen ignorieren |x
| Sämtliche Leerzeichen werde ignoriert. | - Wenn Sie ein Metazeichen in einem regulären Ausdruck verwenden wollen und nicht möchten, dass es eine besondere Bedeutung hat, sollten Sie dieses Zeichen mit dem Escapezeichen „
\
“ versehen.