All Products
Search
Document Center

Simple Log Service:Fungsi Ekspresi Reguler

Last Updated:Jun 04, 2026

Pelajari sintaksis dan penggunaan fungsi ekspresi reguler dalam kueri SLS SQL dan SPL.

Fungsi ekspresi reguler

SLS mendukung fungsi ekspresi reguler berikut. Semua ekspresi reguler menggunakan sintaksis RE2.

Penting Jika Anda ingin menggunakan string dalam pernyataan analitik, bungkus string tersebut dengan tanda kutip tunggal (''). String yang tidak dibungkus atau dibungkus dengan tanda kutip ganda ("") dianggap sebagai nama field atau nama kolom. Misalnya, 'status' merepresentasikan string status, sedangkan status atau "status" merepresentasikan field log status.

Fungsi

Sintaksis

Deskripsi

SQL

SPL

fungsi regexp_extract_all

regexp_extract_all(x, regular expression)

Mengembalikan array dari semua substring yang sesuai dengan ekspresi reguler.

×

regexp_extract_all(x, regular expression, n)

Dari semua kecocokan ekspresi reguler, mengembalikan array substring dari capturing group yang ditentukan.

×

fungsi regexp_extract

regexp_extract(x, regular expression)

Mengembalikan substring pertama yang sesuai dengan ekspresi reguler.

regexp_extract(x, regular expression, n)

Dari substring pertama yang sesuai dengan ekspresi reguler, mengembalikan konten dari capturing group ke-n.

fungsi regexp_extract_bool

regexp_extract_bool(x, regular expression)

Mengonversi substring pertama yang cocok ke tipe BOOLEAN. Mengembalikan null jika konversi gagal.

×

regexp_extract_bool(x, regular expression, n)

Mengonversi konten dari capturing group yang ditentukan dari kecocokan pertama ke tipe BOOLEAN. Mengembalikan null jika konversi gagal.

×

fungsi regexp_extract_long

regexp_extract_long(x, regular expression)

Mengonversi substring pertama yang cocok ke tipe BIGINT. Mengembalikan null jika konversi gagal.

×

regexp_extract_long(x, regular expression, n)

Mengonversi konten dari capturing group yang ditentukan dari kecocokan pertama ke tipe BIGINT. Mengembalikan null jika konversi gagal.

×

fungsi regexp_extract_double

regexp_extract_double(x, regular expression)

Mengonversi substring pertama yang cocok ke tipe DOUBLE. Mengembalikan null jika konversi gagal.

×

regexp_extract_double(x, regular expression, n)

Mengonversi konten dari capturing group yang ditentukan dari kecocokan pertama ke tipe DOUBLE. Mengembalikan null jika konversi gagal.

×

fungsi regexp_extract_map

regexp_extract_map(x, regular expression, keys)

Membuat map dengan memasangkan kunci yang diberikan dengan konten dari capturing group yang sesuai.

×

regexp_extract_map(x, regular expression)

Membuat map dari ekspresi reguler dengan dua capturing group, di mana group pertama menentukan kunci dan group kedua menentukan nilai.

×

fungsi regexp_like

regexp_like(x, regular expression)

Memeriksa apakah sebuah string sesuai dengan ekspresi reguler.

fungsi regexp_replace

regexp_replace(x, regular expression)

Menghapus semua substring yang sesuai dengan ekspresi reguler.

regexp_replace(x, regular expression, replace string)

Mengganti semua substring yang sesuai dengan ekspresi reguler dengan string pengganti.

fungsi regexp_split

regexp_split(x, regular expression)

Memisahkan string berdasarkan ekspresi reguler dan mengembalikan substring hasilnya dalam bentuk array.

×

Catatan

Untuk mengekstraksi tanda kutip tunggal (') dengan fungsi ekspresi reguler, lakukan escape dengan menduplikasinya menjadi ''. Contoh 3 fungsi regexp_extract menunjukkan pendekatan ini.

fungsi regexp_extract_all

Mengekstraksi semua substring yang sesuai dengan ekspresi reguler dari string sumber.

Sintaksis

  • Mengembalikan array berisi semua substring dari string sumber yang sesuai dengan ekspresi reguler.

    regexp_extract_all(x, regular expression)
  • Mengembalikan array substring yang sesuai dengan capturing group tertentu dalam ekspresi reguler.

    regexp_extract_all(x, regular expression, n)

Parameter

Parameter

Deskripsi

x

String sumber. Harus bertipe VARCHAR.

regular expression

Ekspresi reguler. Harus berisi capturing group ketika parameter n ditentukan. Misalnya, (\d)(\d)(\d) menentukan tiga capturing group.

n

Indeks capturing group. Harus merupakan bilangan bulat yang lebih besar atau sama dengan 1.

Nilai kembalian

ARRAY

Contoh

  • Contoh 1: Ekstraksi semua digit dari nilai field server_protocol.

    • Field contoh

      server_protocol:HTTP/2.0
    • Pernyataan kueri dan analisis (Uji)

      *| SELECT regexp_extract_all(server_protocol, '\d+')
    • Hasil kueri dan analisis: Kueri mengembalikan ["2","0"] di kolom _col0, yaitu semua substring digit yang diekstraksi dari HTTP/2.0.

  • Contoh 2: Ekstraksi substring 'Chrome' dari nilai field http_user_agent, lalu hitung jumlah permintaan yang dibuat oleh browser Chrome.

    • Field contoh

      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 dan analisis (Uji)

      *| SELECT regexp_extract_all(http_user_agent, '(Chrome)',1) AS Chrome, count(*) AS count GROUP BY Chrome
    • Hasil kueri dan analisis: Kolom Chrome mengembalikan ["Chrome"] dan kolom count mengembalikan 103440.

fungsi regexp_extract

Mengekstraksi substring pertama yang sesuai dengan ekspresi reguler dari string sumber.

Sintaksis

  • Mengembalikan substring pertama yang sesuai dengan ekspresi reguler.

    regexp_extract(x, regular expression)
  • Mengembalikan substring yang sesuai dengan capturing group ke-n.

    regexp_extract(x, regular expression, n)

Parameter

Parameter

Deskripsi

x

String sumber. Harus bertipe VARCHAR.

regular expression

Ekspresi reguler. Dapat berisi capturing group. Misalnya, (\d)(\d)(\d) berisi tiga capturing group.

n

Indeks capturing group (berbasis 1). Harus merupakan bilangan bulat positif.

Nilai kembalian

Mengembalikan string VARCHAR.

Contoh

SQL

  • Contoh 1: Ekstraksi digit pertama dari field server_protocol.

    • Field contoh

      server_protocol:HTTP/2.0
    • Pernyataan kueri (Uji)

      *|SELECT regexp_extract(server_protocol, '\d+')
    • Kueri mengembalikan kolom bernama _col0 dengan nilai 2.

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

    • Field contoh

      request_uri:/request/path-3/file-5
    • Pernyataan kueri (Uji)

      * | SELECT regexp_extract(request_uri, '.*\/(file.*)', 1) AS file, count(*) AS count GROUP BY file
    • Hasil contoh: Kolom file adalah file-5, dan kolom count adalah 17127.

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

    • Field contoh

      message:error'1232
    • Pernyataan kueri

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

      Untuk mencocokkan tanda kutip tunggal ('), Anda harus melakukan escape dengan menduplikasinya menjadi '' dalam string ekspresi reguler.

    • Hasilnya adalah '1232.

SPL

  • Contoh 1: Ekstraksi digit pertama dari field server_protocol.

    • Field contoh

server_protocol:HTTP/2.0
  • Pernyataan kueri

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

a:  2
  • Contoh 2: Ekstraksi bagian file dari field request_uri.

    • Field contoh

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

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

Hasilnya adalah a: file-5.

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

    • Field contoh

message:error'1232
  • Pernyataan kueri

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

Catatan

Untuk mencocokkan tanda kutip tunggal ('), Anda harus melakukan escape dengan menduplikasinya menjadi '' dalam string ekspresi reguler.

  • Hasil

1  12-19 10:39:33
   a: '1232

fungsi regexp_extract_bool

Mengekstraksi substring yang sesuai dengan ekspresi reguler dan mengonversinya ke BOOLEAN. Konversi berhasil hanya jika substring tersebut adalah "true" atau "false" (tidak peka huruf besar/kecil); jika tidak, mengembalikan null.

Sintaksis

  • Mengekstraksi substring yang sesuai dengan ekspresi reguler dari string sumber dan mengonversinya ke tipe BOOLEAN. Jika konversi gagal, mengembalikan null.

    regexp_extract_bool(x, regular expression)
  • Mengekstraksi substring dari string sumber yang sesuai dengan capturing group tertentu dari ekspresi reguler dan mengonversi substring tersebut ke tipe boolean. Jika konversi gagal, null dikembalikan.

    regexp_extract_bool(x, regular expression, n)

Parameter

Parameter

Deskripsi

x

String sumber. Parameter ini bertipe VARCHAR.

regular expression

Ekspresi reguler yang berisi capturing group. Misalnya, (\d)(\d)(\d) menentukan tiga capturing group.

n

Indeks capturing group yang akan diekstraksi. Parameter ini merupakan bilangan bulat berbasis 1.

Tipe nilai kembalian

Tipe BOOLEAN.

Contoh

  • Ekstraksi nilai boolean dari nilai field.

    • Field contoh

      false 
    • Pernyataan kueri dan analisis (Uji)

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

      Mengembalikan satu kolom _col0 dengan satu baris data. Nilainya adalah false.

fungsi regexp_extract_long

Mengekstraksi substring yang sesuai dengan ekspresi reguler dan mengonversinya ke BIGINT. Mengembalikan null jika konversi gagal.

Sintaksis

  • Mengekstraksi dan mengonversi substring yang sesuai dengan capturing group pertama dalam ekspresi reguler.

    regexp_extract_long(x, regular expression)
  • Mengekstraksi dan mengonversi substring yang sesuai dengan capturing group tertentu.

    regexp_extract_long(x, regular expression, n)

Parameter

Parameter

Deskripsi

x

String sumber. Parameter ini bertipe VARCHAR.

regular expression

Ekspresi reguler yang berisi capturing group. Misalnya, (\d)(\d)(\d) berisi tiga capturing group.

n

Indeks capturing group yang akan diekstraksi. Indeks ini merupakan bilangan bulat berbasis 1.

Tipe nilai kembalian

BIGINT

Contoh

  • Ekstraksi angka dari field time.

    • Field contoh

      time:19/Dec/2024:06:16:06
    • Pernyataan kueri (Uji)

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

      Mengembalikan kolom bernama _col0 yang berisi dua baris, masing-masing dengan nilai 19.

fungsi regexp_extract_double

Mengekstraksi substring yang sesuai dengan ekspresi reguler dan mengonversinya ke DOUBLE. Mengembalikan null jika konversi gagal.

Sintaksis

  • Mengekstraksi substring pertama yang cocok dan mengonversinya ke tipe double. Jika konversi gagal, null dikembalikan.

    regexp_extract_double(x, regular expression)
  • Mengekstraksi substring dari capturing group yang ditentukan dan mengonversinya ke tipe double. Jika konversi gagal, null dikembalikan.

    regexp_extract_double(x, regular expression, n)

Parameter

Parameter

Deskripsi

x

String sumber. Tipe datanya harus VARCHAR.

regular expression

Ekspresi reguler yang berisi capturing group. Misalnya, (\d)(\d)(\d) menentukan tiga capturing group.

n

Indeks capturing group yang akan diekstraksi. Indeks ini merupakan bilangan bulat yang dimulai dari 1.

Tipe nilai kembalian

double

Contoh

  • Ekstraksi bilangan titik mengambang dari field server_protocol.

    • Field contoh

      server_protocol:HTTP/1.1
    • Pernyataan kueri dan analisis (Uji)

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

      Kueri dan analisis mengembalikan kolom bernama _col0. Kolom ini berisi dua baris, masing-masing dengan nilai 1.1.

fungsi regexp_extract_map

Mengekstraksi substring yang sesuai dengan capturing group dalam ekspresi reguler dan mengembalikannya sebagai map pasangan kunci-nilai.

Sintaksis

  • Membuat map dengan memasangkan kunci yang diberikan dengan substring yang sesuai dengan capturing group yang sesuai.

regexp_extract_map(x, regular expression, keys)
  • Membuat map dengan menggunakan ekspresi reguler yang memiliki dua capturing group yang masing-masing mencocokkan kunci dan nilai.

regexp_extract_map(x, regular expression)

Parameter

Parameter

Deskripsi

x

String sumber yang akan dicari. Tipe datanya adalah VARCHAR.

regular expression

Ekspresi reguler yang berisi capturing group. Misalnya, (\d)(\d)(\d) menentukan tiga capturing group.

keys

Nama kunci untuk substring yang ditangkap. Tipe datanya adalah ARRAY(VARCHAR). Jumlah kunci harus sesuai dengan jumlah capturing group dalam ekspresi reguler.

Tipe nilai kembalian

MAP(VARCHAR, VARCHAR)

Contoh

  • Contoh 1: Ekstraksi nama protokol dan versi dari field server_protocol.

    • Field 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

      Kueri mengembalikan map berikut di kolom protocol: {"name":"HTTP","version":"2.0"}.

  • Contoh 2: Ekstraksi semua pasangan kunci-nilai dari field content.

    • Field 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 output

      {"latency":"45.911µs","verb":"GET","userAgent":"kube-probe/1.30+","URI":"/healthz"}

fungsi regexp_like

Memeriksa apakah sebuah string sesuai dengan ekspresi reguler.

Sintaksis

regexp_like(x, regular expression)

Parameter

Parameter

Deskripsi

x

String sumber. Harus bertipe VARCHAR.

regular expression

Pola ekspresi reguler yang akan dicocokkan.

Tipe nilai kembalian

BOOLEAN

Contoh

SQL

Periksa apakah field server_protocol berisi digit.

  • Field contoh

    server_protocol:HTTP/2.0
  • Pernyataan kueri dan analisis (Uji)

    *| select regexp_like(server_protocol, '\d+')
  • Kueri mengembalikan dua baris. Kedua nilainya adalah true. Ini menunjukkan bahwa nilai field server_protocol sesuai dengan ekspresi reguler \d+ (berisi digit).

SPL

Periksa apakah field server_protocol berisi digit.

  • Field contoh

server_protocol:HTTP/2.0
  • Pernyataan kueri dan analisis

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

1  12-18 19:34:20  1.2.3.4
        a: true

fungsi regexp_replace

Menghapus atau mengganti substring yang sesuai dengan ekspresi reguler.

Sintaksis

  • Menghapus semua substring dari string sumber yang sesuai dengan ekspresi reguler.

    regexp_replace(x, regular expression)
  • Mengganti semua substring yang sesuai dengan ekspresi reguler dengan string pengganti.

    regexp_replace(x, regular expression, replace string)

Parameter

Parameter

Deskripsi

x

String sumber yang akan dicari. Parameter ini harus bertipe VARCHAR.

regular expression

Pola ekspresi reguler.

replace string

String pengganti. Jika dihilangkan, substring yang cocok akan dihapus.

Tipe nilai kembalian

VARCHAR

Contoh

SQL

  • Contoh 1: Di field region, ganti nama wilayah yang dimulai dengan cn menjadi China, lalu hitung jumlah permintaan dari China.

    • Field contoh

      region:cn-shanghai
    • Pernyataan kueri dan analisis (Uji)

      * | select regexp_replace(region, 'cn.*','China') AS region, count(*) AS count GROUP BY region
    • Hasil kueri dan analisis: Kueri mengembalikan satu baris di mana kolom region adalah China dan kolom count adalah 168871.

  • Contoh 2: Hapus bagian nomor versi dari nilai field server_protocol, lalu hitung jumlah permintaan untuk setiap protokol komunikasi.

    • Field contoh

      server_protocol:HTTP/2.0
    • Pernyataan kueri dan analisis (Uji)

      *| select regexp_replace(server_protocol, '.\d+') AS server_protocol, count(*) AS count GROUP BY server_protocol
    • Hasil kueri dan analisis: Kueri mengembalikan satu baris di mana server_protocol adalah HTTP dan count adalah 168871.

SPL

  • Contoh 1: Ganti semua nama wilayah dalam nilai field region yang dimulai dengan 'cn' menjadi China.

    • Field contoh

region:cn-shanghai
  • Pernyataan kueri dan analisis

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

    1  12-18 19:34:20  1.2.3.4
       a: China
  • Contoh 2: Hapus nomor versi dari nilai field server_protocol.

    • Field contoh

server_protocol:HTTP/2.0
  • Pernyataan kueri dan analisis (Uji)

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

Kueri mengembalikan entri log yang mencakup timestamp, alamat IP tujuan 1.2.3.4, dan field server_protocol dengan nomor versi dihapus.

fungsi regexp_split

Memisahkan string sumber menjadi array substring menggunakan ekspresi reguler sebagai pemisah.

Sintaksis

regexp_split(x, regular expression)

Parameter

Parameter

Deskripsi

x

String sumber. Tipe datanya adalah VARCHAR.

regular expression

Pola ekspresi reguler yang digunakan sebagai pemisah.

Tipe nilai kembalian

array

Contoh

Gunakan garis miring (/) untuk memisahkan nilai field request_uri.

  • Field contoh

    request_uri:/request/path-0/file-7
  • Pernyataan kueri dan analisis (Uji)

    * | SELECT regexp_split(request_uri,'/')
  • Hasil kueri dan analisis adalah ["","request","path-0","file-7"].