Regular Expression (RegExp) adalah pola yang digunakan untuk mencocokkan, mencari, dan memanipulasi teks. Berikut adalah aturan dan sintaks umum dalam RegExp.
1. Delimiter (Pembatas RegExp)
Di berbagai bahasa pemrograman, RegExp bisa ditulis dengan cara yang berbeda:
- JavaScript, Python, PHP:
- Perl, Sed, AWK, Bash:
- POSIX (grep, awk, sed, egrep, find):
2. Karakter Dasar
Langsung mencocokkan teks biasa:
- Cocok dengan:
hello
- Tidak cocok dengan:
Hello
,helloo
,helo
Case-insensitive (opsional di beberapa bahasa):
- Cocok dengan:
Hello
,HELLO
,hElLo
3. Metakarakter (Simbol Khusus)
Metakarakter digunakan untuk membangun pola pencarian yang fleksibel.
Simbol | Makna |
---|---|
. | Karakter apa pun kecuali baris baru |
^ | Awal baris |
$ | Akhir baris |
\ | Escape karakter (untuk meloloskan metakarakter) |
` | ` |
() | Grup |
[] | Karakter set |
{} | Kuantitas |
Contoh Penggunaan Metakarakter
-
Pola yang cocok dengan kata yang diawali "cat"
catfish
✅dogcat
❌
-
Pola yang cocok dengan angka di akhir string
User123
✅123User
❌
4. Karakter Kelas (Character Classes)
Karakter kelas digunakan untuk mencocokkan karakter tertentu.
Kelas | Makna |
---|---|
\d | Digit (0-9 ) |
\D | Bukan digit |
\w | Karakter huruf (a-z , A-Z , 0-9 , _ ) |
\W | Bukan huruf |
\s | Spasi, tab, newline |
\S | Bukan spasi |
Contoh Character Classes
-
Mencocokkan angka berapa pun dalam teks
Harga: 15000
✅Nomor: ABC123
✅
-
Mencocokkan semua kata tanpa karakter khusus
Hello123
✅hello-world
❌ (karena-
bukan bagian dari\w
)
5. Kuantifier (Pengulangan)
Kuantifier menentukan berapa kali suatu pola harus muncul.
Simbol | Makna |
---|---|
* | 0 atau lebih kali |
+ | 1 atau lebih kali |
? | 0 atau 1 kali (opsional) |
{n} | Tepat n kali |
{n,} | Minimal n kali |
{n,m} | Minimal n , maksimal m kali |
Contoh Kuantifier
-
Mencocokkan "a" yang diikuti beberapa "b"
ab
✅abb
✅a
❌
-
Mencocokkan kata yang diawali huruf besar, minimal 3 huruf
Hello
✅Hi
❌
6. Grup dan Alternatif
( )
→ Mengelompokkan ekspresi.|
→ Menyediakan alternatif (OR).
Contoh Grup dan Alternatif
-
Mencocokkan "cat" atau "dog"
I have a cat
✅I have a dog
✅I have a fish
❌
-
Mencocokkan kode warna seperti
#FFF
atau#FFFFFF
#FFF
✅#123ABC
✅#12345
❌
7. Contoh Penggunaan dalam Berbagai Bahasa
JavaScript
Python
PHP
- RegExp digunakan untuk pencocokan teks dengan pola tertentu.
- Metakarakter (
.
,^
,$
,\
,|
,()
,[]
,{}
) digunakan untuk menyusun pola pencarian. - Kuantifier menentukan berapa kali pola muncul (
*
,+
,?
,{n}
). - Character Classes mempermudah pencocokan karakter umum (
\d
,\w
,\s
). - Bisa digunakan di banyak bahasa pemrograman seperti JavaScript, Python, PHP, dan lainnya.
Penerapan RegExp pada Nginx
Nginx menggunakan regular expression (RegExp) dalam beberapa konfigurasi, terutama dalam location, rewrite, dan map. Berikut adalah cara penggunaannya:
1. RegExp dalam location
Dalam blok location
, RegExp digunakan untuk mencocokkan URL dan menentukan cara menangani permintaan.
Jenis Location dalam Nginx
Tipe | Contoh | Deskripsi |
---|---|---|
Prefix Match (= ) | location = /about | Harus cocok persis dengan /about |
Prefix Default (/ tanpa RegExp) | location / | Cocok dengan semua URL yang diawali / |
Longest Prefix (^~ ) | location ^~ /static/ | Prioritas lebih tinggi daripada RegExp, cocokkan prefix tanpa RegExp |
Regular Expression (~ ) | location ~ \.php$ | Sensitif huruf besar/kecil |
Case-insensitive RegExp (~* ) | `location ~* .(jpg | png |
Contoh Penggunaan
- Mengarahkan semua
.php
ke backend PHP-FPM - Blokir akses ke file
.git
- Izinkan hanya file gambar dengan format tertentu
2. RegExp dalam rewrite
rewrite
digunakan untuk mengubah URL sebelum diteruskan ke handler.
Format
regex
→ Pola yang akan dicocokkan.replacement
→ URL baru setelah rewrite.flag
→ Opsional, seperti last, break, redirect, atau permanent.
Contoh
- Mengubah
/old-page
menjadi/new-page
- Menambahkan trailing slash jika belum ada
- Mengarahkan
blog/xxx
kepost.php?id=xxx
3. RegExp dalam map
map
digunakan untuk mencocokkan suatu pola dan memberikan nilai berdasarkan pola tersebut.
Contoh
- Mengatur header berdasarkan User-Agent
4. RegExp dalam try_files
try_files
digunakan untuk mencoba beberapa file sebelum memberikan 404.
Contoh
- Coba file statis dulu, jika tidak ada arahkan ke
index.php
Kesimpulan
- RegExp banyak digunakan dalam
location
,rewrite
, danmap
. - Gunakan
~
atau~*
jika ingin mencocokkan pola secara fleksibel. rewrite
mengubah URL berdasarkan pola tertentu.map
bisa digunakan untuk kondisi khusus berdasarkan pola input.try_files
membantu mencari file sebelum memberikan respons
Tidak ada komentar:
Posting Komentar