Fungsi REGEXP_COUNT - AWS Clean Rooms

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Fungsi REGEXP_COUNT

Mencari string untuk pola ekspresi reguler dan mengembalikan integer yang menunjukkan berapa kali pola terjadi dalam string. Jika tidak ada kecocokan yang ditemukan, maka fungsi mengembalikan 0.

Sintaks

REGEXP_COUNT ( source_string, pattern [, position [, parameters ] ] )

Argumen

source_string

Ekspresi string, seperti nama kolom, yang akan dicari.

pola

Sebuah string literal yang mewakili pola ekspresi reguler.

posisi

Sebuah integer positif yang menunjukkan posisi dalam source_string untuk mulai mencari. Posisi didasarkan pada jumlah karakter, bukan byte, sehingga karakter multibyte dihitung sebagai karakter tunggal. Default-nya adalah 1. Jika posisi kurang dari 1, pencarian dimulai pada karakter pertama source_string. Jika posisi lebih besar dari jumlah karakter di source_string, hasilnya adalah 0.

parameter

Satu atau lebih string literal yang menunjukkan bagaimana fungsi cocok dengan pola. Nilai yang mungkin adalah sebagai berikut:

  • c — Lakukan pencocokan peka huruf besar/kecil. Defaultnya adalah menggunakan pencocokan peka huruf besar/kecil.

  • i — Lakukan pencocokan case-insensitive.

  • p — Menafsirkan pola dengan dialek Perl Compatible Regular Expression (PCRE).

Jenis pengembalian

Bilangan Bulat

Contoh

Contoh berikut menghitung berapa kali urutan tiga huruf terjadi.

SELECT regexp_count('abcdefghijklmnopqrstuvwxyz', '[a-z]{3}'); regexp_count -------------- 8

Contoh berikut menghitung berapa kali nama domain tingkat atas adalah salah satu atauorg. edu

SELECT email, regexp_count(email,'@[^.]*\\.(org|edu)')FROM users ORDER BY userid LIMIT 4; email | regexp_count -----------------------------------------------+-------------- Etiam.laoreet.libero@sodalesMaurisblandit.edu | 1 Suspendisse.tristique@nonnisiAenean.edu | 1 amet.faucibus.ut@condimentumegetvolutpat.ca | 0 sed@lacusUtnec.ca | 0

Contoh berikut menghitung kemunculan string, menggunakan pencocokan FOX case-insensitive.

SELECT regexp_count('the fox', 'FOX', 1, 'i'); regexp_count -------------- 1

Contoh berikut menggunakan pola yang ditulis dalam dialek PCRE untuk menemukan kata-kata yang mengandung setidaknya satu angka dan satu huruf kecil. Ini menggunakan ?= operator, yang memiliki konotasi pandangan ke depan tertentu di PCRE. Contoh ini menghitung jumlah kemunculan kata-kata tersebut, dengan pencocokan peka huruf besar/kecil.

SELECT regexp_count('passwd7 plain A1234 a1234', '(?=[^ ]*[a-z])(?=[^ ]*[0-9])[^ ]+', 1, 'p'); regexp_count -------------- 2

Contoh berikut menggunakan pola yang ditulis dalam dialek PCRE untuk menemukan kata-kata yang mengandung setidaknya satu angka dan satu huruf kecil. Ini menggunakan ?= operator, yang memiliki konotasi khusus di PCRE. Contoh ini menghitung jumlah kemunculan kata-kata tersebut, tetapi berbeda dari contoh sebelumnya karena menggunakan pencocokan case-insensitive.

SELECT regexp_count('passwd7 plain A1234 a1234', '(?=[^ ]*[a-z])(?=[^ ]*[0-9])[^ ]+', 1, 'ip'); regexp_count -------------- 3