Share via


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