Sintaks ekspresi reguler (regex) yang didukung - CloudWatch Log Amazon

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

Sintaks ekspresi reguler (regex) yang didukung

Gunakan ekspresi reguler saat Anda membutuhkan pencocokan pola fleksibel yang melampaui kecocokan teks yang tepat. Regex sangat berguna untuk:

  • Format variabel: Cocokkan alamat IP, stempel waktu, atau IDs dengan format berbeda

  • Kecocokan sebagian: Temukan entri log yang berisi pola tertentu di mana saja dalam teks

  • Kondisi kompleks: Mencocokkan rentang nilai, karakter opsional, atau ejaan alternatif

Misalnya, gunakan %\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}% untuk mencocokkan format alamat IP apa pun, atau %[Ee]rror|[Ff]ail% untuk menangkap “Kesalahan” /"kesalahan” dan “Gagal” /"gagal” di log.

Anda dapat mencocokkan istilah dalam peristiwa log Anda menggunakan pola regex yang dikelilingi dengan % (tanda persentase sebelum dan sesudah pola regex). Contoh berikut menunjukkan pola filter yang mengembalikan semua peristiwa log yang berisi kata kunci AUTHORIZED:

%AUTHORIZED%

Pola filter ini mengembalikan pesan peristiwa log, seperti:

  • [ERROR 401] UNAUTHORIZED REQUEST

  • [SUCCESS 200] AUTHORIZED REQUEST

Perluas bagian berikut untuk melihat detail tentang operator regex tertentu dan aturan sintaks yang didukung dalam pola filter CloudWatch Log.

Saat menggunakan regex untuk mencari dan memfilter data log, Anda harus mengelilingi ekspresi Anda dengan. %

Pola filter dengan regex hanya dapat mencakup yang berikut:

  • Karakter alfanumerik — Karakter alfanumerik adalah karakter yang berupa huruf (dari A ke Z atau a hingga z) atau digit (dari 0 hingga 9).

  • Karakter simbol yang didukung - Ini termasuk: : '_', '#', '=', '@', '/', ';', ',', dan '-'. Misalnya, %something!% akan ditolak karena '!' tidak didukung.

  • Operator yang didukung - Ini termasuk: ^ '$', '?', '[', ']', '{', '}', '|', '\', '*', '+', dan '.'.

)Operator ( dan tidak didukung. Anda tidak dapat menggunakan tanda kurung untuk mendefinisikan subpola.

Karakter multi-byte tidak didukung.

catatan

Kuota

Ada maksimal 5 pola filter yang berisi regex untuk setiap grup log saat membuat filter metrik atau filter langganan.

Ada batas 2 regex untuk setiap pola filter saat membuat pola filter terbatas atau JSON untuk filter metrik dan filter langganan atau saat memfilter peristiwa log atau Live Tail.

Penggunaan operator yang didukung

  • ^: Jangkar pertandingan ke awal string. Misalnya, %^[hc]at% cocok dengan “topi” dan “kucing”, tetapi hanya di awal tali.

  • $: Jangkar korek api ke ujung string. Misalnya, %[hc]at$% cocok dengan “topi” dan “kucing”, tetapi hanya di ujung tali.

  • ?: Cocokkan nol atau satu kejadian dari suku sebelumnya. Misalnya, %colou?r% dapat mencocokkan “warna” dan “warna”.

  • []: Mendefinisikan kelas karakter. Cocokkan daftar karakter atau rentang karakter yang terkandung dalam tanda kurung. Misalnya, %[abc]% cocok dengan “a”, “b”, atau “c”; %[a-z]% cocok dengan huruf kecil dari “a” ke “z”; dan %[abcx-z]% cocok dengan “a”, “b”, “c”, “x”, “y”, atau “z”.

  • {m, n}: Cocokkan istilah sebelumnya setidaknya m dan tidak lebih dari n kali. Misalnya, hanya %a{3,5}% cocok dengan “aaa”, “aaaa”, dan “aaaaa”.

    catatan

    Entah m atau n dapat dihilangkan jika Anda memilih untuk tidak menentukan minimum atau maksimum.

  • |: Boolean “Atau”, yang cocok dengan istilah di kedua sisi bilah vertikal. Misalnya:

    • %gra|ey%dapat mencocokkan “abu-abu” atau “abu-abu”

    • %^starting|^initializing|^shutting down%dapat mencocokkan “mulai... “, atau “menginisialisasi... “, atau “mematikan”, tetapi tidak akan cocok dengan “melewatkan inisialisasi...”

    • %abcc|ab[^c]$dapat mencocokkan “abcc...” dan “aba...” tetapi tidak akan cocok dengan “aac...”

  • \: Karakter melarikan diri, yang memungkinkan Anda untuk menggunakan arti literal dari operator alih-alih makna khusus. Misalnya, %\[.\]% cocok dengan karakter tunggal yang dikelilingi oleh “[” dan “]” karena tanda kurung diloloskan, seperti “[a]”, “[b]”, “[7]”, “[@]”, “[]]”, dan “[]”.

    catatan

    %10\.10\.0\.1%adalah cara yang benar untuk membuat regex agar sesuai dengan alamat IP 10.10.0.1.

  • *: Cocokkan nol atau lebih contoh dari istilah sebelumnya. Misalnya, %ab*c% dapat mencocokkan “ac”, “abc”, dan “abbbc”; %ab[0-9]*% dapat mencocokkan “ab”, “ab0", dan “ab129".

  • +: Cocokkan satu atau lebih contoh dari istilah sebelumnya. Misalnya, %ab+c% dapat mencocokkan “abc”, “abbc”, dan “abbbc”, tetapi tidak “ac”.

  • .: Cocokkan karakter tunggal apa pun. Misalnya, %.at% mencocokkan tiga string karakter yang diakhiri dengan “at”, termasuk “hat”, “cat”, “bat”, “4at”, "#at" dan "at” (dimulai dengan spasi).

    catatan

    Saat membuat regex agar sesuai dengan alamat IP, penting untuk melarikan diri dari operator. . Misalnya, %10.10.0.1% dapat mencocokkan “10010.051" yang mungkin bukan tujuan sebenarnya dari ekspresi tersebut.

  • \d,\D: Cocokkan karakter digit/non-digit. Misalnya, %\d% setara dengan %[0-9]% dan %\D% setara dengan%[^0-9]%.

    catatan

    Operator huruf besar menunjukkan kebalikan dari rekan huruf kecil.

  • \s,\S: Cocokkan karakter spasi/karakter non-spasi putih.

    catatan

    Operator huruf besar menunjukkan kebalikan dari rekan huruf kecil. Karakter spasi termasuk karakter tab (\t), spasi ( ), dan baris baru (\n).

  • \w,\W: Cocokkan karakter alfanumerik/karakter non-alfanumerik. Misalnya, %\w% setara dengan %[a-zA-Z_0-9]% dan %\W% setara dengan%[^a-zA-Z_0-9]%.

    catatan

    Operator huruf besar menunjukkan kebalikan dari rekan huruf kecil.

  • \xhh: Cocokkan pemetaan ASCII untuk karakter heksadesimal dua digit. \xadalah urutan escape yang menunjukkan bahwa karakter berikut mewakili nilai heksadesimal untuk ASCII. hhmenentukan dua digit heksadesimal (0-9 dan A-F) yang menunjuk ke karakter dalam tabel ASCII.

    catatan

    Anda dapat menggunakan \xhh untuk mencocokkan karakter simbol yang tidak didukung oleh pola filter. Misalnya, %\x3A% pertandingan:; dan %\x28% pertandingan(.