Aracılığıyla paylaş


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_1kullanı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 , , ContainsEndsWithveya StringEquals eşdeğer sistem işlevlerine StartsWithbö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.