All Products
Search
Document Center

Simple Log Service:Fungsi Ekspresi Reguler

Last Updated:Nov 09, 2025

Topik ini menjelaskan sintaksis dasar serta memberikan contoh penggunaan fungsi ekspresi reguler.

Ikhtisar fungsi ekspresi reguler

Simple Log Service mendukung fungsi ekspresi reguler berikut. Ekspresi reguler menggunakan sintaks RE2.

Penting Jika Anda ingin menggunakan string dalam pernyataan analitik, pastikan untuk mengapit string dengan tanda kutip tunggal (''). String yang tidak diapit atau diapit dengan tanda kutip ganda ("") akan dianggap sebagai nama bidang atau nama kolom. Sebagai contoh, 'status' menunjukkan string status, sedangkan status atau "status" menunjukkan bidang log status.

Fungsi

Sintaks

Deskripsi

Dukungan SQL

Dukungan SPL

Fungsi regexp_extract_all

regexp_extract_all(x, ekspresi reguler)

Mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber dan mengembalikan array substring tersebut.

×

regexp_extract_all(x, ekspresi reguler, n)

Mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber dan mengembalikan array substring yang cocok dengan kelompok penangkapan.

×

Fungsi regexp_extract

regexp_extract(x, ekspresi reguler)

Mengekstrak dan mengembalikan substring pertama yang cocok dengan ekspresi reguler dari string sumber.

regexp_extract(x, ekspresi reguler, n)

Mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber dan mengembalikan substring ke-n yang cocok dengan kelompok penangkapan.

Fungsi regexp_extract_bool

regexp_extract_bool(x, ekspresi reguler)

Mengekstrak dan mengembalikan substring yang cocok dengan ekspresi reguler dari string sumber, dan mengonversi substring tersebut ke tipe BOOLEAN. Jika konversi gagal, null dikembalikan.

×

regexp_extract_bool(x, ekspresi reguler, n)

Mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber, mengembalikan substring yang cocok dengan kelompok penangkapan, dan mengonversi substring tersebut ke tipe BOOLEAN. Jika konversi gagal, null dikembalikan.

×

Fungsi regexp_extract_long

regexp_extract_long(x, ekspresi reguler)

Mengekstrak dan mengembalikan substring yang cocok dengan ekspresi reguler dari string sumber, dan mengonversi substring tersebut ke tipe BIGINT. Jika konversi gagal, null dikembalikan.

×

regexp_extract_long(x, ekspresi reguler, n)

Mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber, mengembalikan substring yang cocok dengan kelompok penangkapan, dan mengonversi substring tersebut ke tipe BIGINT. Jika konversi gagal, null dikembalikan.

×

Fungsi regexp_extract_double

regexp_extract_double(x, ekspresi reguler)

Mengekstrak dan mengembalikan substring pertama yang cocok dengan ekspresi reguler dari string sumber, dan mengonversi substring tersebut ke tipe DOUBLE. Jika konversi gagal, null dikembalikan.

×

regexp_extract_double(x, ekspresi reguler, n)

Mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber, mengembalikan substring yang cocok dengan kelompok penangkapan, dan mengonversi substring tersebut ke tipe DOUBLE. Jika konversi gagal, null dikembalikan.

×

Fungsi regexp_extract_map

regexp_extract_map(x, ekspresi reguler, keys)

Menentukan informasi kunci. Substring yang cocok dengan kelompok penangkapan digunakan sebagai nilai.

×

regexp_extract_map(x, ekspresi reguler)

Ekspresi reguler berisi dua kelompok penangkapan yang cocok dengan kunci dan nilai.

×

Fungsi regexp_like

regexp_like(x, ekspresi reguler)

Memeriksa apakah string sumber cocok dengan ekspresi reguler.

Fungsi regexp_replace

regexp_replace(x, ekspresi reguler)

Menghapus substring yang cocok dengan ekspresi reguler dari string sumber dan mengembalikan substring yang tersisa.

regexp_replace(x, ekspresi reguler, string pengganti)

Mengganti substring yang cocok dengan ekspresi reguler dalam string sumber dan mengembalikan string baru.

Fungsi regexp_split

regexp_split(x, ekspresi reguler)

Memisahkan string sumber menggunakan ekspresi reguler dan mengembalikan array substring.

×

Catatan

Saat menggunakan fungsi ekspresi reguler untuk mengekstrak tanda kutip tunggal (') dari sebuah string, Anda harus menambahkan tanda kutip tunggal (') lain ke dalam ekspresi reguler tersebut. Untuk detail lebih lanjut, lihat Contoh 3 dari fungsi regexp_extract.

Fungsi regexp_extract_all

Fungsi regexp_extract_all mengekstrak substring yang sesuai dengan ekspresi reguler dari string sumber.

Sintaksis

  • Mengekstrak semua substring yang sesuai dengan ekspresi reguler dari string sumber dan mengembalikannya dalam array.

    regexp_extract_all(x, ekspresi reguler)
  • Mengekstrak substring yang sesuai dengan ekspresi reguler dari string sumber dan mengembalikan array substring yang sesuai dengan kelompok penangkap tertentu.

    regexp_extract_all(x, ekspresi reguler, n)

Parameter

Parameter

Deskripsi

x

Nilainya bertipe VARCHAR.

ekspresi reguler

Ekspresi reguler yang berisi kelompok penangkap. Sebagai contoh, (\d)(\d)(\d) menentukan tiga kelompok penangkap.

n

Kelompok penangkap ke-n. n adalah bilangan bulat yang dimulai dari 1.

Tipe nilai kembali

Tipe array.

Contoh

  • Contoh 1: Ekstrak semua digit dari nilai bidang server_protocol.

    • Bidang Sampel

      server_protocol:HTTP/2.0
    • Pernyataan Kueri (Tes)

      *| SELECT regexp_extract_all(server_protocol, '\d+')
    • Hasil Kueri dan Analisisregexp_extract_all

  • Contoh 2: Ekstrak bagian Chrome dari nilai bidang http_user_agent dan hitung jumlah permintaan yang dilakukan oleh browser Chrome.

    • Bidang Sampel

      http_user_agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1
    • Pernyataan kueri (Test)

      *| SELECT regexp_extract_all(http_user_agent, '(Chrome)',1) AS Chrome, count(*) AS count GROUP BY Chrome
    • Hasil Kueri dan Analisisregexp_extract_all

Fungsi regexp_extract

Fungsi regexp_extract mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber.

Sintaksis

  • Mengekstrak dan mengembalikan substring pertama yang cocok dengan ekspresi reguler dari string sumber.

    regexp_extract(x, ekspresi reguler)
  • Mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber dan mengembalikan substring yang cocok dengan kelompok penangkap ke-n.

    regexp_extract(x, ekspresi reguler, n)

Parameter

Parameter

Deskripsi

x

Nilainya bertipe VARCHAR.

ekspresi reguler

Ekspresi reguler yang berisi kelompok penangkap. Sebagai contoh, (\d)(\d)(\d) menentukan tiga kelompok penangkap.

n

Kelompok penangkap ke-n. n adalah bilangan bulat yang dimulai dari 1.

Tipe nilai kembali

VARCHAR

Contoh

SQL

  • Contoh 1: Ekstrak digit pertama dari nilai field server_protocol.

    • Field Sampel

      server_protocol:HTTP/2.0
    • Pernyataan Kueri (Tes)

      *|SELECT regexp_extract(server_protocol, '\d+')
    • Hasil Kueri dan Analisisregexp_extract

  • Contoh 2: Ekstrak bagian file dari nilai field request_uri dan hitung jumlah permintaan akses untuk setiap file.

    • Field Sampel

      request_uri:/request/path-3/file-5
    • Pernyataan Kueri (Tes)

      * | SELECT regexp_extract(request_uri, '.*\/(file.*)', 1) AS file, count(*) AS count GROUP BY file
    • Hasil Kueri dan Analisis分析uri

  • Contoh 3: Ekstrak tanda kutip tunggal (') dan digit dari nilai field message.

    • Field Sampel

      message:error'1232
    • Pernyataan Kueri

      * | SELECT regexp_extract(message, '''\d+') 
      Catatan

      Saat menggunakan fungsi ekspresi reguler untuk mengekstrak tanda kutip tunggal ('), Anda harus menambahkan tanda kutip tunggal lainnya (') ke dalam ekspresi reguler.

    • Hasil Kueri dan Analisisregexp_extract函数

SPL

  • Contoh 1: Ekstrak digit pertama dari nilai field server_protocol.

    • Field Sampel

server_protocol:HTTP/2.0
  • Pernyataan Kueri

* | extend a = regexp_extract(server_protocol, '\d+')
  • Hasil Kueri dan Analisis

image.png

  • Contoh 2: Ekstrak bagian file dari nilai field request_uri.

    • Field Sampel

request_uri:/request/path-3/file-5
  • Pernyataan Kueri

* | extend a = regexp_extract(request_uri, '.*\/(file.*)',1)
  • Hasil Kueri dan Analisis

image.png

  • Contoh 3: Ekstrak tanda kutip tunggal (') dan digit dari nilai field message.

    • Field Sampel

message:error'1232
  • Pernyataan Kueri

* | extend a = regexp_extract(message, '''\d+') 

Catatan

Saat menggunakan fungsi ekspresi reguler untuk mengekstrak tanda kutip tunggal ('), Anda harus menambahkan tanda kutip tunggal lainnya (') ke dalam ekspresi reguler.

  • Hasil Kueri dan Analisis

image.png

Fungsi regexp_extract_bool

Fungsi regexp_extract_bool mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber dan mengonversinya ke tipe BOOLEAN. Jika konversi gagal, nilai null akan dikembalikan. Konversi hanya berhasil jika substring adalah "true" atau "false", dan tidak peka terhadap huruf besar-kecil.

Sintaksis

  • Mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber dan mengonversinya ke tipe BOOLEAN. Jika konversi gagal, nilai null akan dikembalikan.

    regexp_extract_bool(x, ekspresi reguler)
  • Mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber, mengembalikan substring yang cocok dengan kelompok penangkap yang ditentukan, dan mengonversinya ke tipe BOOLEAN. Jika konversi gagal, nilai null akan dikembalikan.

    regexp_extract_bool(x, ekspresi reguler, n)

Parameter

Parameter

Deskripsi

x

Nilainya bertipe VARCHAR.

ekspresi reguler

Ekspresi reguler yang berisi kelompok penangkap. Sebagai contoh, (\d)(\d)(\d) menentukan tiga kelompok penangkap.

n

Kelompok penangkap ke-n. n adalah bilangan bulat yang dimulai dari 1.

Tipe nilai kembali

BOOLEAN

Contoh

  • Ekstrak nilai boolean dari nilai bidang.

    • Bidang Sampel

      false 
    • Pernyataan Kueri (Tes)

      *| select regexp_extract_bool('false', '[a-zA-Z]+')
    • Hasil Kueri dan Analisis

      image

Fungsi regexp_extract_long

Fungsi regexp_extract_long mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber dan mengonversinya ke tipe BIGINT. Jika konversi gagal, nilai null akan dikembalikan.

Sintaksis

  • Mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber dan mengonversinya ke tipe BIGINT. Jika konversi gagal, nilai null akan dikembalikan.

    regexp_extract_long(x, ekspresi reguler)
  • Mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber, mengembalikan substring yang cocok dengan kelompok penangkap tertentu, dan mengonversinya ke tipe BIGINT. Jika konversi gagal, nilai null akan dikembalikan.

    regexp_extract_long(x, ekspresi reguler, n)

Parameter

Parameter

Deskripsi

x

Nilainya bertipe VARCHAR.

ekspresi reguler

Ekspresi reguler yang berisi kelompok penangkap. Sebagai contoh, (\d)(\d)(\d) menentukan tiga kelompok penangkap.

n

Kelompok penangkap ke-n. n adalah bilangan bulat yang dimulai dari 1.

Tipe nilai kembali

BIGINT

Contoh

  • Ekstrak angka dari bidang time.

    • Bidang Sampel

      time:19/Dec/2024:06:16:06
    • Pernyataan Kueri (Tes)

      *|SELECT regexp_extract_long(time, '(\d{2})/', 1) 
    • Hasil Kueri dan Analisis

      image

fungsi regexp_extract_double

Fungsi regexp_extract_double mengekstrak substring yang cocok dengan ekspresi reguler dari string sumber dan mengonversinya ke tipe DOUBLE. Jika konversi gagal, nilai null akan dikembalikan.

Sintaksis

  • Mengekstrak substring yang sesuai dengan ekspresi reguler dari string sumber dan mengonversinya menjadi tipe DOUBLE. Jika konversi gagal, null akan dikembalikan.

    regexp_extract_double(x, ekspresi reguler)
  • Mengekstrak substring yang sesuai dengan ekspresi reguler dari string sumber, mengembalikan substring yang cocok dengan kelompok penangkap yang ditentukan, dan mengonversinya menjadi tipe DOUBLE. Jika konversi gagal, null akan dikembalikan.

    regexp_extract_double(x, ekspresi reguler, n)

Parameter

Parameter

Deskripsi

x

Nilainya bertipe VARCHAR.

ekspresi reguler

Ekspresi reguler yang berisi kelompok penangkap. Sebagai contoh, (\d)(\d)(\d) menentukan tiga kelompok penangkap.

n

Kelompok penangkap ke-n. n adalah bilangan bulat yang dimulai dari 1.

Tipe nilai kembali

Tipe data: Double.

Contoh

  • Ekstrak angka dari bidang server_protocol.

    • Contoh bidang:

      server_protocol:HTTP/1.1
    • Pernyataan kueri (Tes):

      *|SELECT regexp_extract_double(server_protocol, '\d+') 
    • Hasil kueri dan analisis:

      image

regexp_extract_map fungsi

Fungsi regexp_extract_map mengekstrak substring yang sesuai dengan semua kelompok penangkap dalam ekspresi reguler dari string sumber.

Sintaks

  • Menentukan informasi kunci. Substring yang cocok dengan kelompok penangkap digunakan sebagai nilai.

regexp_extract_map(x, ekspresi reguler, kunci)
  • Ekspresi reguler berisi dua kelompok penangkap yang sesuai dengan kunci dan nilai.

regexp_extract_map(x, ekspresi reguler)

Parameter

Parameter

Deskripsi

x

Nilai tersebut bertipe VARCHAR.

ekspresi reguler

Ekspresi reguler yang berisi kelompok penangkapan. Sebagai contoh, (\d)(\d)(\d) menentukan tiga kelompok penangkapan.

kunci

Nama kunci untuk substring yang ditangkap. Nilai tersebut bertipe ARRAY(VARCHAR). Jumlah elemen harus sama dengan jumlah kelompok penangkapan dalam parameter ekspresi reguler.

Tipe nilai kembali

MAP(VARCHAR, VARCHAR)

Contoh

  • Contoh 1: Ekstrak nama protokol dan versi dari bidang server_protocol.

    • Bidang contoh:

      server_protocol: 'HTTP/2.0'
    • Pernyataan kueri:

      select regexp_extract_map(server_protocol, '(\w+)/([\d\.]+)', array['name', 'version']) as protocol
    • Hasil kueri dan analisis:

      image.png

  • Contoh 2: Ekstrak semua pasangan kunci-nilai dari bidang content.

    • Bidang contoh:

      content: 'verb="GET" URI="/healthz" latency="45.911µs" userAgent="kube-probe/1.30+"'
    • Pernyataan kueri:

      select regexp_extract_map(content, '(\w+)="([^"]*)"') as args
    • Data keluaran:

      image.png

Fungsi regexp_like

Fungsi regexp_like memeriksa apakah string sumber cocok dengan ekspresi reguler.

Sintaksis

regexp_like(x, ekspresi reguler)

Parameter

Parameter

Deskripsi

x

Nilainya bertipe VARCHAR.

ekspresi reguler

Sebuah ekspresi reguler.

Tipe nilai kembali

BOOLEAN

Contoh

SQL

Periksa apakah nilai dari bidang server_protocol mengandung digit.

  • Bidang Contoh

    server_protocol:HTTP/2.0
  • Pernyataan Kueri (Uji)

    *| select regexp_like(server_protocol, '\d+')
  • Hasil Kueri dan Analisisregexp_like

SPL

Periksa apakah nilai dari bidang server_protocol mengandung digit.

  • Bidang Contoh

server_protocol:HTTP/2.0
  • Pernyataan Kueri

* |extend a = regexp_like(server_protocol, '\d+')
  • Hasil Kueri dan Analisis

image.png

Fungsi regexp_replace

Menghapus atau mengganti substring yang sesuai dengan ekspresi reguler dalam string sumber.

Sintaksis

  • Menghapus substring yang sesuai dengan ekspresi reguler dari string sumber dan mengembalikan substring yang tersisa.

    regexp_replace(x, ekspresi reguler)
  • Mengganti substring yang sesuai dengan ekspresi reguler dalam string sumber dan mengembalikan string baru.

    regexp_replace(x, ekspresi reguler, string pengganti)

Parameter

Parameter

Deskripsi

x

Nilainya bertipe VARCHAR.

ekspresi reguler

Sebuah ekspresi reguler.

string pengganti

Substring yang digunakan untuk penggantian.

Tipe nilai kembali

VARCHAR

Contoh

SQL

  • Contoh 1: Ganti nama wilayah yang dimulai dengan cn pada nilai bidang region dengan China dan hitung jumlah permintaan dari China.

    • Contoh

      region:cn-shanghai
    • Pernyataan kueri (Test)

      * | select regexp_replace(region, 'cn.*','China') AS region, count(*) AS count GROUP BY region
    • Hasil Kueri dan Analisisregexp_replace

  • Contoh 2: Hapus nomor versi dari nilai bidang server_protocol dan hitung jumlah permintaan untuk setiap protokol komunikasi.

    • Bidang Contoh

      server_protocol:HTTP/2.0
    • Pernyataan Kueri (Tes)

      *| select regexp_replace(server_protocol, '.\d+') AS server_protocol, count(*) AS count GROUP BY server_protocol
    • Hasil Kueri dan Analisisregexp_replace

SPL

  • Contoh 1: Ganti nama wilayah yang dimulai dengan cn pada nilai bidang region dengan China.

    • Bidang Contoh

region:cn-shanghai
  • Pernyataan Kueri

* | extend a = regexp_replace(region, 'cn.*','China')
  • Hasil Kueri dan Analisis

    image.png

  • Contoh 2: Hapus nomor versi dari nilai bidang server_protocol.

    • Bidang Contoh

server_protocol:HTTP/2.0
  • Pernyataan Kueri (Tes)

* | extend a = regexp_replace(server_protocol, '.\d+')
  • Hasil Kueri dan Analisis

image.png

Fungsi regexp_split

Fungsi regexp_split memisahkan string sumber dan mengembalikan array substring.

Sintaksis

regexp_split(x, ekspresi reguler)

Parameter

Parameter

Deskripsi

x

Nilainya bertipe VARCHAR.

ekspresi reguler

Sebuah ekspresi reguler.

Tipe nilai kembali

Tipe datanya adalah array.

Contoh

Gunakan garis miring (/) untuk memisahkan nilai dari bidang request_uri.

  • Contoh Bidang

    request_uri:/request/path-0/file-7
  • Pernyataan Kueri (Uji)

    * | SELECT regexp_split(request_uri,'/')
  • Hasil Kueri dan Analisisregexp_split