分享方式:


RegexMatch (NoSQL 查詢)

適用於:NoSQL

此函式提供正則表示式功能。 規則運算式可用於尋找文字模式,是既簡明、又有彈性的標記法。

注意

適用於 NoSQL 的 Azure Cosmos DB 會使用 PERL 相容的正規表示式 (PCRE)

語法

RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])  

引數

描述
string_expr_1 要搜尋的字串表達式。
string_expr_2 字串表示式,其正則表達式定義為在搜尋 string_expr_1時使用。
string_expr_3(選擇性) 選擇性字串表示式,其中包含要搭配正則表示式使用的選取修飾詞 (string_expr_2)。 如果未提供,則預設值為執行正則表達式比對,且沒有修飾詞。

注意

提供的空字串 string_expr_3 在功能上相當於省略自變數。

傳回類型

傳回布爾表達式。

範例

下列範例說明使用幾個不同修飾詞的正則表達式相符專案。

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
  }
]

下一個範例假設您有包含字段專案的 name 容器。

[
  {
    "name": "Tecozow coat",
    "category": "winter-coats"
  },
  {
    "name": "Bladnick coat",
    "category": "winter-coats"
  },
  {
    "name": "Anidin heavy jacket",
    "category": "winter-coats"
  }
]

此範例會使用正則表達式比對做為篩選條件來傳回專案的子集。

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.category = "winter-coats" AND    
    RegexMatch(p.name, " coat{1}")
[
  "Tecozow coat",
  "Bladnick coat"
]

備註

  • 只有當正則表示式可以細分為 StartsWith、、 EndsWithContainsStringEquals對等系統函式時,此函式才受益於範圍索引
  • undefined如果要搜尋的字串表示式 (string_expr_1)、正規表示式 (string_expr_2) 或選擇的修飾詞 (string_expr_3) 無效,則傳回 。
  • 此函式支援下列四個修飾詞: | |格式 |描述 | |--- |--- |--- | | 多行 | m |將字串表示式視為多行搜尋。 如果沒有此選項,字元 ^$ 會比對字串的開頭或結尾,而不是每個個別行。 | | 比對任何字串 | s |允許 「.」 比對任何字元,包括換行符。 | | 忽略大小寫 | i |忽略模式比對時的案例。 | | 忽略空格符 | x |忽略所有空格符。 |
  • 如果您想要在正則表示式中使用元字元,而且不想讓它具有特殊意義,您應該使用 \逸出中繼字元。