Regex

Anda mungkin juga menyukai

Anda di halaman 1dari 13

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

Beriklan?

Jadi Penulis?

Tentang Kami

GRAFIS User Interface Photoshop Vektor Videografi

PEMROGRAMAN Desktop Internet

REVIEW Freeware Aplikasi Web Game

TIP & TRIK Windows Linux Jejaring Sosial

Tutorial PHP: Pengenalan Dasar-Dasar Regex


Pemrograman Internet August 24, 2012
Tweet 0 2

Haqqi
Like 1

Ada 2 Komentar Seru

Informasi Tutorial
Program Versi Tingkat Kesulitan Estimasi Waktu PHP 5.3+ Pemula - Standar 60 menit

Sebuah teknik untuk mendeteksi pola pada sebuah string. Mendeteksi suatu pola dari sebuah string atau kumpulan karakter bisa dengan berbagai macam cara. Misalnya, untuk mencari apakah string xyz ada dalam string abcdefgxyzabc, cara paling sederhana adalah melakukan perulangan dari awal sampai akhir hingga mengeluarkan hasil apakah ditemukan atau tidak. Artikel ini pernah dipublikasikan oleh Penulis di majalah PC Media edisi 04/2011 lalu. Cara lain adalah menggunakan fungsi strstr() atau strpos() yang akan mengembalikan nilai integer berupa index lokasi pola yang ditemukan. Jika dibuat dalam bahasa pemrograman PHP sederhana,

1 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

bisa ditulis:
1 2 3 4 5 6 7 8 9 10 $string = 'abcdefgxyzabc'; $pattern = 'xyz'; if(($location = strpos($string, $pattern))) { echo $location; } echo '<br />'; if(($location = strstr($string, $pattern))) { echo $location; } ?

Tapi cara tersebut hanya berfungsi untuk string yang sama, bukan sebuah pola. Bagaimana untuk mencari pola sebuah alamat email? Kasus ini akan cukup rumit dikerjakan bila menggunakan cara perulangan ataupun dengan fungsi di atas. Algoritmanya, perlu dicari apakah hanya ada satu karakter @. Sebelum karakter tersebut, perlu dideteksi apakah terdapat karakter yang tidak diperbolehkan dalam format email atau tidak. Setelah karakter tersebut, perlu dicari apakah ada sebuah titik yang di sebelah kanannya ada satu atau lebih karakter berupa huruf.

Untuk lebih jelasnya coba Anda lihat gambar 1. Sebuah alamat email valid harus (1) diawali minimal 1 karakter yang diperbolehkan, (2) setelah itu sebuah karakter @ (tidak boleh lebih dari satu), diikuti nama domain yang (3) minimal ada 1 karakter, dan diakhiri (4) sebuah titik yang diikuti (5) minimal sebuah karakter. Cukup rumit bukan bila dikerjakan dengan if-else dan fungsi strpos() saja?

Regex
Berbagai macam pencarian pola sebenarnya dapat diselesaikan dengan cepat menggunakan apa yang disebut dengan Regex. Regex merupakan singkatan dari Regular Expression, yaitu sebuah metode untuk mencari suatu pola dalam sebuah string. Regex sendiri sebenarnya juga merupakan string. Hanya saja karakter dalam string tersebut diterjemahkan sebagai suatu pola dan aturan tertentu. Misalkan, string yang diawali oleh tanda caping ^ berarti string tersebut harus diawali oleh karakter yang mengikuti tanda caping tersebut. Syntax regex pada setiap bahasa pemrograman berbeda-beda. Dalam PHP, awalnya dikenal fungsi ereg(), eregi(), ereg_replace(), dan eregi_replace(), untuk memanfaatkan regex ini. Namun fungsifungsi tersebut sudah tidak dapat digunakan lagi sejak PHP versi 5.3.0 karena sudah diimplementasikan lagi fungsi yang lebih baik lagi. Saat ini Anda bisa menggunakan fungsi preg_match() untuk menggunakan regex. Fungsi lainnya yang tersedia adalah preg_replace(), preg_filter(), preg_match_all(), dan preg_split(). Semuanya terletak dalam library pcre.php. PCRE adalah singkatan dari Perl Compatible Regular Expression,

2 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

yang artinya regex ini dapat digunakan pula pada bahasa pemrograman Perl. Untuk lebih lengkapnya, Anda bisa mempelajari dokumentasi di website resminya. Secara default, pola yang akan dicari harus diawali dan diakhiri oleh karakter garis miring (slash) yang berfungsi sebagai delimeter. Contoh Regex paling sederhana untuk mencari apakah ada pola fgh dalam string abcdefghijk sebagai berikut.
1 2 3 4 5 6 7 8 <?php $string = 'abcdefghijk'; if(preg_match("/fgh/", $string)) { echo 'String berisi pola fgh'; } else { echo 'Tidak ada pola fgh dalam string'; } ?> ?

Berikut ini adalah beberapa aturan regex sebagai dasar pembuatan regex lebih lanjut. Penulis telah membuat tutorial yang lebih sederhana tentang pengenalan Regex ini di blog milik Penulis. Untuk lebih lengkapnya, klik link ini.

Karakter Awal
Untuk mencari pola berawalan suatu string, maka regex yang digunakan adalah karakter caping ^. Contohnya, apakah string berawalan abc maka regex-nya adalah sebagai berikut.
1 2 3 4 5 6 7 8 <?php $string = 'abcdefghijk'; if(preg_match("/^abc/", $string)) { echo 'String berawalan abc'; } else { echo 'Tidak berawalan abc'; } ?> ?

Tanda caping yang diikuti karakter abc berarti bahwa string harus berawalan dengan abc. Sedangkan tanda slash berikutnya menandakan bahwa karakter setelahnya tidak perlu dihiraukan.

Case-Sensitive
Namun regex tersebut tidak berlaku jika satu atau lebih karakter abc pada awal string yang akan dicari merupakan huruf kapital. Terkadang Anda hanya perlu mencari pola karakter tersebut, tanpa memperhitungkan besar kecilnya. Untuk tidak menghiraukan case sensitivity, Anda bisa menambahkan delimeter /i di belakang regex, menjadi seperti berikut.
1 2 3 4 5 6 7 8 <?php $string = 'abcdefghijk'; if(preg_match("/^ABC/i", $string)) { echo 'String berawalan abc'; } else { echo 'Tidak berawalan abc'; } ?> ?

Dengan demikian, kapital atau tidaknya pola yang dicari tidak akan berpengaruh.

3 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

Karakter Akhir
Berikutnya adalah mencari string dengan akhir berupa pola tertentu. Untuk mencari pola di akhir sebuah string, ada 2 cara. Cara pertama adalah menggunakan tanda dolar $. Namun cara ini memiliki sebuah celah kecil untuk timbul suatu bug dalam program Anda jika tidak digunakan secara benar. Sebab tanda dolar memasukkan endline \n ke dalam pola yang dicari, sehingga bila mencari pola xyz dalam string abcxyz dan abcxyz\n akan menghasilkan nilai yang sama-sama benar. Untuk tidak memasukkan endline dalam pola, Anda bisa menggunakan regex backslash z \z. Contoh penggunaannya sebagai berikut.
1 2 3 4 5 6 7 8 <?php $string = 'abc123xyz'; if(preg_match("/xyz\z/i", $string)) { echo 'Pola berakhiran xyz ditemukan'; } else { echo 'Pola tidak ditemukan'; } ?> ?

Ingat kembali bahwa /i hanya menandakan bahwa regex tersebut case insensitive. Karakter awal dari string juga tidak akan dihiraukan selama string tersebut memiliki akhiran yang sesuai.

Meta Characters
Untuk pencarian pola yang mengandung karakter meta, perlu diberikan perlakuan tersendiri. Karakter meta adalah karakter yang digunakan sebagai penanda Regex. Seperti contoh sebelumnya, salah satu contoh karakter meta adalah ^ dan $. Selain itu, beberapa karakter lainnya adalah titik ., asterik *, plus +, tanda tanya ?, seluruh jenis tanda kurung, pipe |, dan backslash \. Karena merupakan karakter meta, karakter ini tidak akan dibaca sebagai pola, melainkan hanya sebuah tanda operasi. Untuk memasukkannya sebagai karakter yang dicari dalam pola, Anda harus menambahkan karakter backslash \ sebelum karakter meta. Backslash disebut juga sebagai escape character. Sebagai contoh, jika mencari pola 2+7 dalam sebuah string, maka bisa ditulis sebagai berikut.
1 2 3 4 5 6 7 8 9 <?php $string = '2+7=9'; if(preg_match("/^2\+7/i", $string)) { echo 'Pola 2+7 ditemukan'; } else { echo 'Tidak ditemukan'; } ?> ?

Perhatikan bahwa sebelum tanda tambah disertakan pula tanda backslash. Hal ini juga berlaku untuk semua karakter meta. Pengecualian untuk karakter backslash sendiri karena escape karakter juga perlu di-escape juga, untuk memasukkan pola backslash pada regex, maka harus diulang 4 kali menjadi \\\\.

4 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

Kurung Siku
Karakter kurung siku [] merupakan regex untuk menyatakan kelas karakter, yaitu kumpulan karakter yang diinginkan. Karakter tersebut dapat dituliskan [abcdefg] atau dengan dash [a-g] khusus untuk karakter yang berurutan. Untuk melihat apa saja karakter yang sesuai, Anda bisa menggunakan fungsi preg_match_all() dan memasukkan parameter ketiga berupa variable yang nantinya akan menyimpan sub-string apa saja yang sesuai dengan pola yang ditentukan.
1 2 3 4 5 6 7 8 9 <?php $string = 'abcefghijklmnopqrstuvwxyz0123456789'; preg_match_all("/[af]/", $string, $matches); foreach($matches[0] as $value) { echo $value . '<br />'; } ?> ?

Hampir semua karakter meta tidak akan berfungsi sebagai karakter meta jika di dalam kurung siku ini, melainkan hanya menjadi karakter biasa. Sehingga bila ingin mencari pola yang mengandung huruf a, b, c, dan $, maka cukup menuliskannya [abc$] saja, tanpa escape character. Pengecualian untuk karakter caping ^. Jika diletakkan di awal kurung, itu berarti bahwa yang dicari adalah karakter yang bukan dalam kurung siku tersebut. Sebagai contoh, jika ingin mencari pola selain huruf bgjk dalam string, maka harus ditulis sebagai berikut.
1 2 3 4 5 6 7 8 9 <?php $string = 'abcefghijklmnopqrs'; preg_match_all("/[^bgjk]/", $string, $matches); foreach($matches[0] as $value) { echo $value . '<br />'; } ?> ?

Titik
Titik juga merupakan karakter meta yang berarti akan mengembalikan nilai true untuk semua karakter selain line break (\r dan \n), namun hanya satu karakter. Contohnya adalah sebagai berikut.
1 2 3 4 5 6 7 8 <?php $string = 'helo hilo h lo hxlo hbelo'; if(preg_match_all("/h.lo/", $string, $match)) { foreach($match[0] as $m) { echo $m . '<br />'; } } ?> ?

Program tersebut akan mencetak kata helo, hilo, h lo, dan hxlo, tanpa kata terakhir. Untuk memasukkan line break dalam aturan, Anda harus memberikan flag \s di akhir regex, sama seperti cara penulisan case insensitive.

Bintang dan Tambah

5 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

Tanda bintang * dan tambah + memiliki arti yang hampir sama. Dalam regex, tanda bintang diletakkan setelah sebuah karakter, yang artinya karakter tersebut dapat ada nol atau lebih perulangan yang diharapkan dalam pola. Sedangkan untuk tanda tambah, itu berarti harus ada satu atau lebih (tidak boleh nol) karakter yang ditulis dalam aturan. Misalkan, dalam contoh program berikut.
1 2 3 4 5 6 7 8 9 10 11 <?php $string = array('rby', 'ruby', 'ruuuby'); foreach($string as $s) { if(preg_match("/ru*by/", $s)) { echo 'Match ru*by '.$s.'<br />'; } if(preg_match("/ru+by/", $s)) { echo 'Match ru+by '.$s.'<br />'; } } ?> ?

Program tersebut akan menghasilkan output:


1 2 3 4 5 Match Match Match Match Match ru*by ru*by ru+by ru*by ru+by rby ruby ruby ruuuby ruuuby ?

Terlihat jelas bahwa string pertama (rby) tidak akan diterima oleh regex tanda tambah, melainkan hanya tanda bintang. Tanda tambah setelah huruf u berarti bahwa minimal ada satu huruf u.

Tanda Tanya
Tanda tanya ? merupakan karakter meta untuk aturan regex yang berarti karakter tersebut opsional, boleh ada boleh tidak. Salah satu contoh kasus penggunaan karakter ini adalah untuk mendeteksi nomer telepon. Kadang ada yang memasukkan kode area dengan pemisah karakter minux -, kadang ada yang tidak. Sebagai contoh, dalam program berikut.
1 2 3 4 5 6 7 8 <?php $telp = '0857111111'; if(preg_match("/0857?111111/", $telp)) { echo 'Nomer telp benar'; } else { echo 'Nomer telp salah'; } ?> ?

Seandainya pun karakter minus dihapus, pola tersebut masih diterima oleh regex karena tanda minus bersifat opsional.

Kurung Kurawal
Kurung kurawal {} merupakan karakter meta yang melambangkan jumlah karakter atau pola yang harus ada. Biasanya kurung kurawal disertakan setelah kurung siku, yang berarti harus terdapat beberapa karakter yang terdapat dalam kurung siku, sejumlah angka yang tertulis di kurung kurawal. Sebagai contoh, misalkan dalam suatu nomer telepon harus terdapat pola angka nol sebanyak tiga kali, maka penulisan programnya sebagai berikut.

6 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

1 2 3 4 5 6 7 8

<?php $telp = '0341000123'; if(preg_match("/03410{3}123/", $telp)) { echo 'Nomer telp benar'; } else { echo 'Nomer telp salah'; } ?>

Anda juga bisa mengkombinasikannya dengan karakter meta yang lain. Sebagai contoh untuk mendeteksi format nomor telepon rumah Kota Malang yang terdiri atas kode area 0341 dan diikuti oleh 6 angka berikutnya, maka regex-nya adalah sebagai berikut.
1 2 3 4 5 6 7 8 <?php $telp = '0341000123'; if(preg_match("/0341?[09]{6}$/", $telp)) { echo 'Nomer telp Malang'; } else { echo 'Nomer telp salah'; } ?> ?

Untuk membuat aturan minimal sejumlah x perulangan, maka Anda bisa menuliskannya dengan diikuti tanda koma setelah angka yang diharapkan. Contohnya, bila ingin terdapat angka minimal 3 digit, maka dapat ditulis [0-9]{3,}. Sedangkan bila menginginkan rentang jumlah perulangan yang diharapkan, Anda dapat menyertakan tambahan angka lain setelah tanda koma, seperti {3,6} yang berarti jumlah perulangan harus antara 3 sampai 6 kali.

Urutan Karakter Khusus


Alfabet dan angka merupakan karakter khusus yang berurutan. Cukup merepotkan bukan bila harus menulis [abcd sampai xyz] ataupun [a-z]? Sama seperti format lainnya, dalam regex juga dikenal escape character khusus untuk alfabet, angka, dan linebreak. Berikut ini adalah daftar urutan karakter khusus yang berlaku pada regex. \d Untuk seluruh karakter berupa angka, sama seperti [0-9] \D Untuk seluruh karakter yang bukan angka, sama seperti [^0-9] \s Untuk karakter whitespace, sama seperti penulisan [\t\r\n\f\v] \S Untuk karakter non whitespace, sama seperti penulisan [^\t\r\n\f\v] \w Untuk semua karakter alpha-numeric, yaitu alfabet dan angka, sama seperti [a-zA-Z0-9_] \W Untuk semua karakter non alpha-numeric, sama seperti [^a-zA-Z0-9_] Contoh penggunaannya sebagai berikut. Misalkan Anda sedang mencari string dengan pola yang diawali sebuah angka, kemudian 3 huruf, dan diakhiri oleh sebuah angka maupun huruf. Maka, penulisannya adalah:
1 2 3 4 5 6 <?php $string = '2hgd3'; if(preg_match("/^\d[AZaz]{3}\w$/", $string)) { echo 'Pola sesuai'; } ?> ?

Kurung Biasa

7 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

Sama seperti dalam matematika, tanda kurung biasa () digunakan untuk mengelompokkan aturanaturan regex lainnya. Tanda kurung paling dalam akan diolah terlebih dahulu, setelah itu baru tanda kurung yang diluarnya. Penggunaannya bisa bermacam-macam, Anda bisa melihatnya pada contoh-contoh selanjutnya.

Karakter Pipe
Karakter pipe atau garis tegak lurus | menyatakan operasi atau. Bila digabungkan dengan tanda kurung, Anda bisa menentukan dalam string harus terdapat suatu pola tertentu. Misalkan, format hanya menerima nomer telepon regional Jakarta, Surabaya, dan Malang, dengan jumlah digit enam atau tujuh. Maka Anda bisa menuliskannya sebagai berikut.
1 2 3 4 5 6 7 8 9 10 11 <?php $string = array('0341000123', '0311231231', '021999999', '041321321', '03112332'); foreach($string as $s) { if(preg_match("/^(0341|031|021)?[\d]{6,7}$/", $s)) { echo 'Nomer '.$s.' sesuai<br />'; } else { echo 'Nomer '.$s.' tidak sesuai<br />'; } } ?> ?

Hasil regex di atas, nomer ke-1 sampai dengan ke-3 merupakan pola yang sesuai. Nomer ke-4 tidak sesuai karena tidak diawali kode area yang ditentukan. Nomer ke-5 tidak sesuai karena hanya mengandung 5 digit nomer setelah kode area.

Modifiers dan Assertions


Pada contoh sebelumnya, Anda telah mempelajari modifier i untuk menyatakan bahwa regex yang digunakan adalah case insensitive. Berikut ini adalah beberapa modifier lain yang bisa Anda gunakan sesuai kasus yang Anda butuhkan. i tidak menghiraukan huruf kapital atau case insensitive U pencarian regex dengan metode ungreedy s menyertakan new line dalam pola m memperbolehkan pola dalam baris yang berbeda x untuk regex dengan komentar dan whitespace e evaluasi kode php (khusus fungsi preg_replace) S analisis tambahan terhadap pola Modifier harus ditulis setelah delimeter penutup di sebelah kanan regex. Untuk assertion juga ada beberapa regex yang bisa digunakan. Karakter \b berarti sebagai word boundary, atau batasan sebuah kata. Ini untuk mencegah pola yang dicari ada sebagai substring dari kata lainnya. Sebagai contoh, untuk mencari kata aman dalam kalimat halaman ini telah aman, maka harus ditulis sebagai berikut.
1 2 <?php $string = 'halaman ini telah aman'; ?

8 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

3 4 5 6

if(preg_match("/\baman\b/", $string)) { echo 'Pola ditemukan'; } ?>

Assertion lainnya adalah: \B bukan karakter word boundary \A awal dari subject \Z akhir dari subject, atau karakter new line \z akhir dari subject \G posisi yang sesuai di awal subject Semua assertion harus diawali oleh escape character, untuk menandakan bahwa yang digunakan adalah assertion.

Delimeter
Pada contoh-contoh sebelumnya, delimeter yang digunakan adalah tanda slash /. Delimeter juga dapat diganti untuk kasus tertentu, terutama bila Anda memerlukan karakter slash dalam pola yang dicari. Memang bisa menggunakan escape character, tapi jika cukup banyak tanda slash yang diperlukan seperti pada pola URL, maka akan cukup merepotkan. Beberapa delimeter lain yang bisa digunakan adalah /, @, #, ` (bukan tanda petik), ~, %, &, tanda petik satu dan dua. Sehingga, Anda juga bisa menulisnya seperti berikut.
1 preg_match("#asdf#", $string); ?

Melihat Pola di Depan dan Belakang


Regex memiliki kemampuan untuk mencari pola dengan melihat ke belakang maupun ke depan dari pola yang dicari. Misalkan, ingin hanya mencari kata nama yang didepannya diikuti oleh tanda titik dua. Atau ingin mencari kata media yang diawali dengan kata pc. Semua bisa dilakukan dengan Regex. Untuk melihat karakter atau kata di depan kata yang dicari, Anda bisa menggunakan regex (?=). Perhatikan contoh berikut ini.
1 2 3 4 5 6 7 8 <?php $string = 'pcmedia'; if(preg_match("/pc(?=media)/", $string)) { echo 'Pattern ditemukan'; } else { echo 'Pattern tidak ditemukan'; } ?> ?

Program tersebut akan bernilai benar. karena karakter pc langsung diikuti oleh media. Coba Anda ubah kata tersebut menjadi memiliki spasi, maka akan bernilai salah. Sedangkan untuk mencari pattern setelah kata yang dicari, namun menghasilkan nilai negatif,

9 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

menggunakan regex (?!). Maksudnya, yang dicari adalah kata yang tidak diikuti oleh kata lain dalam regex tersebut. Perhatikan contoh berikut ini.
1 2 3 4 5 6 7 8 <?php $string = 'pcmedia'; if(preg_match("/pc(?!media)/", $string)) { echo 'Pattern ditemukan'; } else { echo 'Pattern tidak ditemukan'; } ?> ?

Maka yang akan keluar adalah pernyataan salah. Hal ini karena tidak ada kata pc yang tidak diikuti oleh media, sedangkan yang ada yaitu pcmedia langsung. Untuk melihat ke belakang, regex yang digunakan adalah (?<=). Tujuannya sama, mencari pola dengan awalan pola lainnya. Contohnya adalah sebagai berikut.
1 2 3 4 5 6 7 8 <?php $string = 'pcmedia'; if(preg_match("/(?<=pc)media/", $string)) { echo 'Pattern ditemukan'; } else { echo 'Pattern tidak ditemukan'; } ?> ?

Sedangkan untuk pencarian ke belakang, namun yang dicari adalah nilai negatifnya, maka menggunakan regex (?<!). Sehingga yang akan dicari adalah pola karakter yang tidak diikuti pola yang dimaksud. Coba perhatikan contoh berikut ini.
1 2 3 4 5 6 7 <?php $string = 'pcmedia'; if(preg_match("/(?<!pc)media/", $string)) { echo 'Pattern ditemukan'; } else { echo 'Pattern tidak ditemukan'; } ?

Kode di atas tidak akan menemukan pattern yang dicari, karena dalam string hanya ada kata media yang berawalan pc. Harusnya yang dicari oleh pattern tersebut adalah media tanpa berawalan pc.

Fungsi Sejenis
Selain preg_match(), ada beberapa fungsi regex yang bisa langsung Anda gunakan untuk berbagai kasus. Diantaranya adalah sebagai berikut ini.

preg_replace()
Fungsi ini sama dengan preg_match(), hanya saja fungsi ini akan langsung mengganti pola yang ditemukan dengan string lain. Fungsi ini menerima minimal 3 parameter, yaitu regex, string pengganti, dan string yang akan dicari. Lebih lengkapnya di sini.

preg_match_all()
Berbeda dengan preg_match() yang langsung akan mengembalikan nilai benar jika menemukan

10 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

satu saja pattern yang sesuai. Fungsi ini akan mengembalikan jumlah pattern yang ditemukan, serta dapat mengembalikan apa saja pattern yang ditemukan melalui parameter ketiga. Karena itu fungsi ini membutuhkan minimal 3 parameter yaitu regex, string yang akan dicari, serta array yang akan menyimpan semua pola yang ditemukan. Lebih lengkapnya di sini.

Penutup Pola Email


Setelah mempelajari semua dasar regex dalam PHP, Anda bisa merangkainya menjadi salah satu cara pencarian pola kompleks seperti alamat email. Ada banyak regex yang bisa diimplementasikan, tergantung cara pikir masing-masing programmer. Berikut ini adalah salah satu regex yang digunakan untuk mendeteksi apakah alamat sebuah alamat email valid atau tidak.
1 2 3 4 5 6 7 8 <?php ? $email = 'me@haqqi.net'; if(preg_match("/^([az09\+_\]+)(\.[az09\+_\]+)*@([az09\]+\.)+[az]{2,6}$/ix", $email)) { echo 'Email valid'; } else { echo 'Email tidak valid'; } ?>

Penjelasan rincinya dapat Anda baca pada blog penulis di http://blog.haqqi.net. Selamat mencoba. Artikel ini pernah dipublikasikan oleh Penulis di majalah PC Media edisi 04/2011 lalu.

Sumber lain bisa Anda baca di sini dan di sini.

Tag: Dasar PHP, Email, PHP, Regex, Tutorial, Tutorial PHP

Suka dengan artikel ini?


Silahkan berlangganan gratis dengan RSS Feed, follow Twitter @BisaKomputer, atau rekomendasikan artikel ini ke teman-temanmu.
Tweet 0 2 Like 1

Haqqi
Blogger, penulis, entrepreneur, dan pembelajar kehidupan. Mempunyai blog pribadi yang berisi refleksi diri dan opini termasuk curhatan galau. Saat ini sedang menjabat sebagai CEO Mimi Creative dan CEO Tomatech Mobile.
Ikuti @haqqi Lihat semua artikel oleh Haqqi

Artikel Seru Lainnya

11 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

FabricJs: Sesi Melukis


September 27, 2012

Translasi Bahasa Pada Theme WordPress


June 26, 2012

Pada seri fabricjs sebelumnya, semua objek ketika pertama kali diciptakan sudah memiliki ukuran. Ukuran ini ditentukan melalui properti yang dilberikan kepada konstruktor masing-masing objek.

Membuat theme ataupun plugin wordpress merupakan sebuah pekerjaan yang mudah, terlebih lagi saat ini banyak dokumentasi lengkap yang telah disediakan maupun tutorial yang dapat

FabricJs: Properti dan Event


September 19, 2012

Action dan Filter Hook pada WordPress


September 12, 2012

Tidak seru kan setelah menggambar objek di atas canvas, Anda tidak bisa mengubahnya? Jadi, setelah memahami secara sederhana cara membuat objek menggunakan library fabricjs,

WordPress adalah CMS yang paling powerful saat ini menurut saya, tapi masih sedikit developer yang saya kenal yang fokus pada CMS ini. Sudah hampir

Tulis Komentar
Email Anda tidak akan dipublikasikan secara bebas. Yang bertanda bintang wajib diisi.

Nama * E-mail * Website Komentar *

Kirim Komentar Notify me of follow-up comments by email. Notify me of new posts by email.

Pixel Ads

Mau beriklan di sini?

12 of 13

30/10/2012 22:38

Tutorial PHP: Pengenalan Dasar-Dasar Regex | Bisa Komputer

http://bisakomputer.com/tutorial-php-pengenalan-dasar-dasar-regex/

Beriklan?

Jadi Penulis?

Tentang Kami

2012 Bisa Komputer | All right reserved Tempatnya segala tutorial komputer

13 of 13

30/10/2012 22:38

Anda mungkin juga menyukai