Bagikan melalui


RegexMatch (kueri NoSQL)

BERLAKU UNTUK: NoSQL

Fungsi ini menyediakan kemampuan ekspresi reguler. Regex adalah notasi ringkas dan fleksibel untuk menemukan pola teks.

Catatan

Azure Cosmos DB for NoSQL menggunakan perl compatible regular expressions (PCRE).

Sintaks

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

Argumen

Deskripsi
string_expr_1 Ekspresi string yang akan dicari.
string_expr_2 Ekspresi string dengan ekspresi reguler yang ditentukan untuk digunakan saat mencari string_expr_1.
string_expr_3(Opsional) Ekspresi string opsional dengan pengubah yang dipilih untuk digunakan dengan ekspresi reguler (string_expr_2). Jika tidak disediakan, defaultnya adalah menjalankan kecocokan ekspresi reguler tanpa pengubah.

Catatan

Menyediakan string kosong untuk string_expr_3 secara fungsional setara dengan menghilangkan argumen.

Jenis yang ditampilkan

Mengembalikan ekspresi boolean.

Contoh

Contoh berikut mengilustrasikan kecocokan ekspresi reguler menggunakan beberapa pengubah yang berbeda.

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

Contoh berikutnya mengasumsikan bahwa Anda memiliki kontainer dengan item termasuk name bidang .

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

Contoh ini menggunakan kecocokan ekspresi reguler sebagai filter untuk mengembalikan subset item.

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

Keterangan

  • Fungsi ini mendapat manfaat dari indeks rentang hanya jika ekspresi reguler dapat dipecah menjadi StartsWithfungsi sistem , , EndsWithContains, atau StringEquals yang setara.
  • Mengembalikan undefined jika ekspresi string yang akan dicari (string_expr_1), ekspresi reguler (string_expr_2), atau pengubah yang dipilih (string_expr_3) tidak valid.
  • Fungsi ini mendukung empat pengubah berikut: | | Format | Deskripsi | | --- | --- | --- | | Beberapa baris | m | Perlakukan ekspresi string yang akan dicari sebagai beberapa baris. Tanpa opsi ini, karakter ^ dan $ cocokkan di awal atau akhir string dan bukan setiap baris individual. | | Cocok dengan string | s apa pun | Izinkan "." untuk mencocokkan karakter apa pun, termasuk karakter baris baru. | | Abaikan huruf besar/kecil | i | Abaikan kasus saat pencocokan pola. | | Abaikan spasi kosong | x | Abaikan semua karakter spasi kosong. |
  • Jika Anda ingin menggunakan meta-character dalam ekspresi reguler dan tidak ingin memiliki arti khusus, Anda harus keluar dari metacharacter menggunakan \.