RegexMatch (NoSQL sorgusu)
ŞUNUN IÇIN GEÇERLIDIR: 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 ifadeler (PCRE) kullanır.
Söz dizimi
RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])
Bağımsız değişkenler
Description | |
---|---|
string_expr_1 |
Aranacak dize ifadesi. |
string_expr_2 |
aranırken string_expr_1 kullanılacak normal ifadenin tanımlandığı 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 içeren name
öğeler içeren bir 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 aralık dizininden yalnızca normal ifade , ,
EndsWith
Contains
veyaStringEquals
eşdeğer sistem işlevlerineStartsWith
bölünebiliyorsa yararlanır. - 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 değerlendirin. Bu seçenek olmadan, her bir satırı değil, dizenin başındaki veya sonundaki ve karakterlerini^
$
eşleştirin. | | Herhangi bir dizeyi eşleştirme |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 durumunu yoksayın. | | Boşluğu yoksay |x
| Tüm boşluk karakterlerini yoksayın. | - Normal bir ifadede meta karakter kullanmak ve özel bir anlamı olmasını istemiyorsanız, kullanarak
\
meta karakterden kaçmalısınız.