RegexMatch (NoSQL sorgusu)
UYGULANANLAR: NoSQL
Bu işlev normal ifade özellikleri sağlar. Normal ifadeler, metin desenlerini bulmaya yönelik kısa ve esnek bir gösterimidir.
Not
NoSQL için Azure Cosmos DB, PERL uyumlu normal ifadeleri (PCRE) kullanır.
Söz dizimi
RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])
Bağımsız değişkenler
Açıklama | |
---|---|
string_expr_1 |
Aranacak dize ifadesi. |
string_expr_2 |
aranırken string_expr_1 kullanılacak normal ifadeye sahip bir dize ifadesi. |
string_expr_3 (İsteğe bağlı) |
Normal ifade ( ile kullanılacak seçili değiştiricileri içeren isteğe bağlı bir dize ifadesistring_expr_2 . Sağlanmadıysa, varsayılan değer, normal ifade eşleşmesini değiştirici olmadan çalıştırmaktır. |
Not
için string_expr_3
boş bir dize sağlamak, bağımsız değişkenin atlanmasıyla işlevsel olarak eşdeğerdir.
Dönüş türleri
Boole ifadesi döndürür.
Örnekler
Aşağıdaki örnekte, birkaç farklı değiştirici kullanılarak normal ifade eşleşmeleri gösterilmektedir.
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
}
]
Sonraki örnekte, bir alan da dahil olmak üzere öğeler içeren bir name
kapsayıcınız olduğu varsayılır.
[
{
"name": "Tecozow coat",
"category": "winter-coats"
},
{
"name": "Bladnick coat",
"category": "winter-coats"
},
{
"name": "Anidin heavy jacket",
"category": "winter-coats"
}
]
Bu örnekte, öğelerin bir alt kümesini döndürmek için filtre olarak normal ifade eşleşmesi kullanılır.
SELECT VALUE
p.name
FROM
products p
WHERE
p.category = "winter-coats" AND
RegexMatch(p.name, " coat{1}")
[
"Tecozow coat",
"Bladnick coat"
]
Açıklamalar
- Bu işlev bir aralık dizininden yalnızca normal ifade , ,
Contains
EndsWith
veyaStringEquals
eşdeğer sistem işlevlerineStartsWith
bölünebiliyorsa yarar sağlar. - Aranacak dize ifadesinin (
string_expr_1
), normal ifadenin (string_expr_2
) veya seçili değiştiricilerin (string_expr_3
) geçersiz olup olmadığını döndürürundefined
. - Bu işlev aşağıdaki dört değiştiriciyi destekler: | | Biçim | Açıklama | | --- | --- | --- | | Birden çok satır |
m
| Aranacak dize ifadesini birden çok satır olarak kabul edin. Bu seçenek olmadan, her bir satırı değil, dizenin başındaki veya sonundaki ve karakterleri^
$
eşleştir. | | Herhangi bir dizeyi eşleştir |s
| "." öğesinin yeni satır karakteri de dahil olmak üzere herhangi bir karakterle eşleşmesine izin verin. | | Büyük/küçük harf yoksay |i
| Desen eşleştirme sırasında büyük/küçük harf yoksay. | | Boşluğu yoksay |x
| Tüm boşluk karakterlerini yoksay. | - Normal ifadede meta karakter kullanmak ve özel bir anlamı olmasını istemiyorsanız kullanarak meta karakterden
\
kaçmalısınız.