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 ekspresi reguler yang kompatibel dengan PERL (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 dikembalikan
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
StartsWith
fungsi sistem , ,EndsWith
Contains
, atauStringEquals
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 untuk dicari sebagai beberapa baris. Tanpa opsi ini, karakter^
dan$
cocokkan di awal atau akhir string dan bukan setiap baris individual. | | Cocokkan 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 |x
kosong | 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
\
.