RegexMatch (zapytanie NoSQL)
DOTYCZY: NoSQL
Ta funkcja zapewnia możliwości wyrażeń regularnych. Wyrażenia regularne to zwięzła i elastyczna notacja służąca do znajdowania wzorców tekstu.
Uwaga
Usługa Azure Cosmos DB for NoSQL używa wyrażeń regularnych zgodnych z algorytmem PERL (PCRE).
Składnia
RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])
Argumenty
opis | |
---|---|
string_expr_1 |
Wyszukiwane jest wyrażenie ciągu. |
string_expr_2 |
Wyrażenie ciągu z wyrażeniem regularnym zdefiniowanym do użycia podczas wyszukiwania string_expr_1 . |
string_expr_3 (Opcjonalnie) |
Opcjonalne wyrażenie ciągu z wybranymi modyfikatorami do użycia z wyrażeniem regularnym (string_expr_2 ). Jeśli nie zostanie podana, wartością domyślną jest uruchomienie wyrażenia regularnego zgodnego z bez modyfikatorów. |
Uwaga
Podanie pustego ciągu dla string_expr_3
elementu jest funkcjonalnie równoważne z pominięciem argumentu.
Typy zwracane
Zwraca wyrażenie logiczne.
Przykłady
Poniższy przykład ilustruje dopasowania wyrażeń regularnych przy użyciu kilku różnych modyfikatorów.
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
}
]
W następnym przykładzie przyjęto założenie, że masz kontener z elementami, w tym polem name
.
[
{
"name": "Tecozow coat",
"category": "winter-coats"
},
{
"name": "Bladnick coat",
"category": "winter-coats"
},
{
"name": "Anidin heavy jacket",
"category": "winter-coats"
}
]
W tym przykładzie użyto dopasowania wyrażenia regularnego jako filtru w celu zwrócenia podzestawu elementów.
SELECT VALUE
p.name
FROM
products p
WHERE
p.category = "winter-coats" AND
RegexMatch(p.name, " coat{1}")
[
"Tecozow coat",
"Bladnick coat"
]
Uwagi
- Ta funkcja korzysta z indeksu zakresu tylko wtedy, gdy wyrażenie regularne może zostać podzielone na
StartsWith
funkcje systemowe , ,EndsWith
Contains
lubStringEquals
równoważne. - Zwraca wartość
undefined
, jeśli wyrażenie ciągu do przeszukania (string_expr_1
), wyrażenie regularne (string_expr_2
) lub wybrane modyfikatory (string_expr_3
) są nieprawidłowe. - Ta funkcja obsługuje następujące cztery modyfikatory: | | Format | Opis | | --- | --- | --- | | Wiele wierszy |
m
| Traktuj wyrażenie ciągu, które ma być wyszukiwane jako wiele wierszy. Bez tej opcji znaki^
i$
pasują na początku lub na końcu ciągu, a nie na każdym wierszu. | | Dopasuj dowolny ciąg |s
| Zezwól na dopasowanie znaku "." do dowolnego znaku, w tym znaku nowego wiersza. | | Ignoruj wielkość liter |i
| Ignoruj wielkość liter podczas dopasowywania wzorca. | | Ignoruj białe znaki |x
| Ignoruj wszystkie znaki odstępów. | - Jeśli chcesz użyć meta-znaku w wyrażeniu regularnym i nie chcesz, aby miało to specjalne znaczenie, należy użyć metatypu przy użyciu polecenia
\
.