Ekspresi reguler menjelaskan teks yang perlu ditemukan. Alih-alih satu frasa persis, Anda menentukan pola: misalnya, kata “Permintaan” dan nomor apa pun setelahnya. Nomor dapat berubah pada setiap pesan, tetapi pola tetap akan menemukan bagian yang diperlukan.
Dengan cara ini, Anda dapat mencari tanggal, tautan, kata tertentu, seluruh baris, dan hampir semua kombinasi teks yang dapat dijelaskan dengan aturan. Beberapa simbol sederhana memungkinkan Anda memperhitungkan nilai yang berubah, memilih dari beberapa pilihan, dan melewati bagian yang tidak diperlukan. Kemampuan pencarian ini jauh lebih luas daripada pencarian kata biasa.

Kemampuan ekspresi reguler
Dukungan ekspresi reguler dalam filter dan penggantian FLOWIN memungkinkan Anda:
- Menambahkan teks apa pun di awal atau akhir pesan.
- Menyaring pesan yang memuat tautan.
- Menghapus tautan, nomor telepon, alamat email, dan informasi kontak lainnya dari pesan yang disalin.
- Menyaring pesan panjang atau, sebaliknya, hanya pesan pendek.
Mode “Regexp”
Dalam pengaturan filter atau penggantian, mode “Regexp” di sebelah bidang “Cari” mengaktifkan pencarian dengan ekspresi reguler. Polanya sendiri ditentukan di bidang ini. Pembuatan aturan dan penerapannya ke penerusan dijelaskan dalam petunjuk filter dan penggantian.

Cara membaca ekspresi reguler
Mari mulai dengan pola Permintaan №\d+. Pola ini menemukan Permintaan №125 maupun Permintaan №8072 meskipun nomornya berbeda. Kita akan membacanya dari kiri ke kanan:
Permintaan №mencari huruf, spasi, dan tanda nomor tersebut secara persis.\dberarti angka apa pun dari 0 hingga 9.+mensyaratkan satu atau lebih angka tersebut secara berurutan.
Bagian yang ditemukan disebut kecocokan. Dalam pesan Permintaan №125 diterima kecocokannya adalah Permintaan №125, sedangkan kata diterima berada di luarnya. Dalam filter, kecocokan membantu menentukan apakah pesan memenuhi kondisi; dalam penggantian, kecocokan menunjukkan bagian yang harus diubah.
Huruf dan spasi biasa dalam pola dicari sesuai penulisannya. Simbol khusus menetapkan aturan. Di bawah ini, kita akan membahas notasi dasar, lalu mengumpulkan contoh siap pakai untuk berbagai tugas.
Sintaks ekspresi reguler
Untuk mulai menggunakan ekspresi reguler, Anda perlu mengetahui sintaksnya, yaitu memahami arti simbol tertentu.
Simbol dasar
^menunjukkan awal teks.$menunjukkan akhir teks..cocok dengan karakter apa pun, termasuk pergantian baris.\dcocok dengan angka dari 0 hingga 9.\wcocok dengan huruf Latin, angka, atau garis bawah.\nmenunjukkan pergantian baris.\tmenunjukkan tabulasi.\scocok dengan spasi biasa, tabulasi, pergantian baris, carriage return, atau pergantian halaman.\bmemeriksa batas kata, misalnya antara huruf dan spasi. Simbol ini tidak menambahkan karakter ke kecocokan.
Simbol jumlah pengulangan
Simbol jumlah pengulangan menentukan berapa kali karakter atau grup di depannya diulang. Grup menggabungkan beberapa karakter dalam tanda kurung bulat.
*berarti 0 kali atau lebih.+berarti 1 kali atau lebih.?berarti 0 atau 1 kali.{5}berarti tepat 5 kali.{1,5}berarti 1 hingga 5 kali.{1,}berarti 1 kali atau lebih.{0,5}berarti 0 hingga 5 kali.
Misalnya:
a+cocok dengana,aa,aaadan seterusnya..*cocok dengan teks apa pun, bahkan teks kosong.ab{3}cocok denganabbb.
Grup
Tanda kurung bulat ( ) menggabungkan karakter menjadi grup. Grup paling sering digunakan bersama simbol jumlah pengulangan atau garis vertikal | yang berarti ATAU secara logis.
Misalnya:
((Bob)|(Alice))cocok denganBobmaupunAlice.(abc){3}cocok denganabcabcabc.
Himpunan karakter
Untuk menentukan himpunan karakter, digunakan tanda kurung siku [ ]. Di dalamnya, karakter dapat dicantumkan seperti berikut:
[а-яё]cocok dengan huruf apa pun dalam alfabet Rusia.[абвгд]atau[а-д]cocok dengan salah satu hurufа,б,в,гatauд.[a-z]cocok dengan huruf Latin apa pun dariahinggaz.[0-5]cocok dengan angka apa pun dari 0 hingga 5.
Simbol ^ di awal himpunan berarti BUKAN secara logis:
[^а-яё]cocok dengan karakter apa pun selain huruf alfabet Rusia.[^a-z]cocok dengan karakter apa pun selain huruf Latin dariahinggaz.[^\s]cocok dengan karakter apa pun yang tidak termasuk dalam\s.
Di FLOWIN, \w tidak mencakup Kiril. [а-яё] mencakup alfabet Rusia, termasuk ё. Huruf ini tidak termasuk dalam rentang [а-я] tersebut.
Escape karakter
Jika simbol khusus diperlukan sebagai teks biasa, bukan sebagai bagian dari sintaks, letakkan garis miring terbalik \ di depannya. Ini disebut escape.
Misalnya:
:\)cocok dengan:). Tanda kurung di sini berarti tanda kurung biasa, bukan grup.siapa\?cocok dengansiapa?. Tanda tanya di sini tidak menentukan jumlah pengulangan.
Pengaturan pencarian di FLOWIN
Flag mengubah aturan umum pencarian, misalnya apakah huruf besar dan kecil perlu dibedakan. Di FLOWIN, sebagian pengaturan sudah aktif, sehingga pola yang sama dapat berperilaku berbeda dibandingkan penguji pihak lain dengan pengaturan default.
Flag sudah diatur
Dalam filter dan penggantian, sudah diaktifkan IgnoreCase (i), Singleline (s), RE2 dan Unicode. Anda tidak perlu menambahkannya secara manual ke setiap pola. Berikut hal penting dalam praktik:
imenonaktifkan pembedaan huruf besar dan kecil:beliakan menemukanBelimaupunBELI.smemungkinkan titik.menemukan pergantian baris. Karena itu,.*dapat menangkap beberapa baris sekaligus.- Mode multibaris
Multiline (m)nonaktif secara default:^dan$merujuk ke awal dan akhir seluruh pesan, bukan setiap baris. RE2menentukan karakteristik sintaks:\dmencari angka 0–9, sedangkan\whanya huruf Latin, angka, dan garis bawah. PengaktifanUnicodetidak menambahkan Kiril ke\w.
Untuk contoh siap pakai di bawah, tidak ada pengaturan yang perlu diubah. Jika Anda mengujinya di layanan lain, perhatikan pengaturan ini: nama flag yang sama belum menjamin perilaku mesin yang berbeda akan sama.
Pola siap pakai
Pilih tugas lalu salin pola ke bidang “Cari” dengan mode “Regexp”. Contoh menampilkan teks yang ditemukan. Apa yang selanjutnya terjadi pada pesan bergantung pada filter atau penggantian yang diatur.
Nomor permintaan yang selalu berubah
Menemukan permintaan tanpa mengetahui nomornya terlebih dahulu.
Pola:Permintaan №\d+
Teks: Permintaan №125 diterima. Permintaan №8072 menunggu balasan.
Akan menemukan: Permintaan №125, Permintaan №8072.
Teks “Permintaan №” tetap sama, sedangkan \d+ menemukan satu atau lebih angka secara berurutan. Spasi sebelum № juga termasuk dalam pola. “Permintaan №ABC” tidak akan cocok.
Pesan yang hanya berisi enam angka
Memilih pesan yang memuat kode tepat enam angka.
Pola:^\d{6}$
Teks: 482901
Akan menemukan: 482901.
Awal dan akhir membatasi seluruh pesan, sedangkan {6} menentukan enam angka. “Kode: 482901”, “48290”, dan “482901 ” dengan spasi di akhir tidak akan cocok.
Salah satu dari beberapa pilihan teks
Menemukan pesan yang menyebut salah satu dari dua status.
Pola:selesai|dibatalkan
Teks: Selesai: berkas dikirim. Tugas lain dibatalkan.
Akan menemukan: Selesai, dibatalkan.
Garis vertikal berarti “atau”. Huruf besar dan kecil tidak dibedakan. Tanpa batas kata, pola juga akan menemukan “selesai” di dalam kata “selesainya”.
Kata utuh tanpa kecocokan di dalam kata lain
Menemukan kata “beli”, dengan melewati “pembelian” dan “membeli”.
Pola:\bbeli\b
Teks: Beli, pembelian dan membeli.
Akan menemukan: Beli.
\b di kedua sisi memeriksa batas kata. Spasi dan tanda baca dapat memisahkan kata dari teks di sekitarnya; keduanya tidak termasuk dalam kecocokan.
Tanggal dalam format hari.bulan.tahun
Menemukan tanggal dengan hari dan bulan yang ditulis dalam dua angka serta tahun dalam empat angka.
Pola:\d{2}\.\d{2}\.\d{4}
Teks: Pertemuan 16.10.2026 pukul 12:00.
Akan menemukan: 16.10.2026.
\. menunjukkan titik biasa, bukan sembarang karakter. Pola memeriksa bentuk penulisan, bukan kalender: “99.99.2026” juga akan cocok.
Tagar dalam bahasa Rusia dan Inggris
Menemukan tagar yang terdiri dari huruf, angka, dan garis bawah.
Pola:#[а-яёa-z0-9_]+
Teks: #Новости #release_2 #всё_готово
Akan menemukan: #Новости, #release_2, #всё_готово.
Setelah # terdapat satu atau lebih karakter dari himpunan. Spasi atau tanda hubung akan mengakhiri kecocokan: dalam “#план-дня”, hanya “#план” yang akan ditemukan.
Penyebutan berbentuk @username
Menemukan teks yang menyerupai penyebutan pengguna atau kanal.
Pola:@[a-z0-9_]{3,}
Teks: Penulis: @news_room. Yang lain: @ab.
Akan menemukan: @news_room.
Setelah @ diperlukan setidaknya tiga huruf Latin, angka, atau garis bawah. Pola mencari bentuk penulisan, bukan memeriksa keberadaan pengguna. Pola juga dapat menemukan bagian dari alamat email.
Tautan dengan http:// atau https://
Menemukan alamat web yang ditulis secara eksplisit beserta protokolnya.
Pola:https?:\/\/[^\s]+
Teks: Buka https://example.org/page dan http://example.org
Akan menemukan: https://example.org/page, http://example.org.
Huruf s bersifat opsional. Setelah //, pola mengambil karakter hingga spasi terdekat atau pemisah lain dari \s. Alamat tanpa protokol tidak akan cocok, sedangkan koma atau titik yang menempel pada alamat dapat masuk ke kecocokan.
Nomor telepon berupa +7 dan sepuluh angka
Menemukan nomor yang ditulis menyatu tanpa tanda kurung, spasi, dan tanda hubung.
Pola:\+7\d{10}
Teks: Kontak: +79991234567
Akan menemukan: +79991234567.
\+ mencari tanda tambah biasa, sedangkan \d{10} menentukan tepat sepuluh angka setelah 7. Pilihan “+7 (999) 123-45-67” tidak akan cocok. Ini adalah pencarian berdasarkan bentuk penulisan, bukan pemeriksaan keberadaan nomor; kecocokan juga mungkin terjadi di dalam deretan angka yang lebih panjang.
Pesan yang dimulai dengan penanda tertentu
Menemukan penanda “Penting:” hanya di awal pesan.
Pola:^Penting:
Teks: PENTING: pertemuan dijadwalkan ulang.
Akan menemukan: PENTING:.
^ memeriksa awal seluruh teks. Dalam “Pembaruan: Penting: pertemuan dijadwalkan ulang”, tidak akan ada kecocokan. Penanda di awal baris kedua juga tidak akan cocok karena mode multibaris nonaktif secara default.
Spasi berlebih di antara kata
Menemukan dua atau lebih spasi biasa secara berurutan untuk kemudian diganti dengan satu spasi.
Pola:[ ]{2,}
Dalam teks Teks··dengan···spasi dua kelompok akan ditemukan: dua dan tiga spasi. Tanda · di sini hanya menunjukkan spasi biasa; Anda tidak perlu memasukkannya.
Di dalam tanda kurung siku terdapat spasi biasa, sedangkan {2,} mensyaratkan setidaknya dua spasi berurutan. Untuk menghapus spasi berlebih, bagian yang ditemukan diganti dengan satu spasi. Pola ini tidak menyentuh pergantian baris.
Pesan pendek hingga seratus karakter
Memilih pesan tidak kosong sepanjang 1 hingga 100 karakter.
Pola:^.{1,100}$
Teks: Pesan singkat
Akan menemukan: Pesan singkat.
Titik menghitung semua karakter, termasuk spasi dan pergantian baris. Tanda kurung menentukan batas, sedangkan ^ dan $ mensyaratkan pemeriksaan seluruh pesan. Pesan kosong dan teks lebih dari 100 karakter tidak akan cocok. Emoji gabungan dapat dihitung sebagai beberapa karakter.
Daftar akan terus ditambah. Usulan pola baru dapat dikirim ke dukungan @value_maker.
Menguji pola sendiri
Di regex101.com Anda dapat menguji ekspresi reguler sendiri dengan mudah. Pengaturan pencariannya dapat berbeda dari FLOWIN, sehingga sebelum diterapkan ke penerusan sebenarnya, pola perlu diuji pada pesan pengujian: dengan dan tanpa kecocokan yang diharapkan.
Pertanyaan umum
Kapan “Teks” atau “Daftar” sudah cukup, dan kapan perlu “Regexp”?
Mode “Teks” sesuai untuk satu frasa yang sudah diketahui, sedangkan “Daftar” memungkinkan Anda mencantumkan beberapa pilihan. “Regexp” diperlukan ketika teks berubah mengikuti aturan: misalnya, selalu ada nomor baru setelah kata “Permintaan”. Mode ini juga membantu menentukan batas kata atau jumlah karakter. Tindakan terhadap pesan yang ditemukan diatur secara terpisah dalam filter atau penggantian.
Mengapa ekspresi dari penguji daring bekerja berbeda di FLOWIN?
Hasil bergantung pada mesin dan pengaturan pencarian. Dalam filter dan penggantian FLOWIN, IgnoreCase, Singleline, RE2, dan Unicode sudah aktif, sedangkan Multiline nonaktif secara default. Karena itu, huruf besar dan kecil tidak dibedakan, titik dapat menemukan pergantian baris, sedangkan ^ dan $ merujuk ke seluruh pesan. Bandingkan pengaturan pencarian lalu uji ekspresi di FLOWIN pada pesan dengan dan tanpa kecocokan yang diharapkan.
Mengapa .* menangkap beberapa baris?
Singleline aktif di FLOWIN: titik juga cocok dengan pergantian baris. Karena itu, .* tidak harus berhenti di akhir baris pertama. Jika perlu menemukan teks hingga pergantian baris terdekat, Anda dapat menggunakan [^\r\n]+: pola ini mencari satu atau lebih karakter selain carriage return dan pergantian baris.
Mengapa \w tidak menemukan huruf Rusia?
Dalam pengaturan pencarian FLOWIN, \w mencakup huruf Latin, angka, dan garis bawah. Untuk huruf Rusia, gunakan [а-яё], sedangkan untuk deretan huruf tersebut, gunakan [а-яё]+. Huruf ё harus ditentukan secara terpisah: rentang а-я tidak mencakupnya. Huruf besar dan kecil tidak perlu dibedakan karena pencarian sudah mengabaikan perbedaan tersebut.
Bagaimana cara menemukan kata utuh, bukan bagian dalam kata lain?
Tambahkan \b di kedua sisi kata. Misalnya, \bbeli\b akan menemukan “Beli” dalam teks “Beli, pembelian dan membeli”, tetapi melewati dua kata lainnya. Batas memeriksa posisi kata, sedangkan spasi dan tanda baca tidak termasuk dalam bagian yang ditemukan.
Apakah pola tanggal dalam contoh memeriksa keberadaan tanggal tersebut?
Tidak. Ekspresi \d{2}\.\d{2}\.\d{4} hanya memeriksa bentuk penulisan: dua angka, titik, dua angka, titik, dan empat angka. Karena itu, pola akan menemukan 16.10.2026 maupun 99.99.2026. Contoh ini sesuai untuk mencari bagian yang menyerupai tanggal, tetapi tidak memastikan kebenaran hari dan bulan.
Apa yang perlu diperiksa jika ekspresi reguler tidak menemukan apa pun?
Pertama, pastikan “Regexp” dipilih di sebelah bidang “Cari”. Lalu bandingkan pola dengan teks asli: spasi, pergantian baris, dan karakter biasa juga memengaruhi kecocokan. Misalnya, Permintaan №\d+ memerlukan spasi sebelum № dan angka setelahnya, sehingga tidak akan menemukan Permintaan№125 atau Permintaan №ABC. Periksa juga batas ^ dan $: secara default, keduanya merujuk ke seluruh pesan. Mulai dari bagian sederhana lalu tambahkan kondisi satu per satu sambil memeriksa hasil setiap kali.