7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Web Development

8 Regular Expressions Yang Harus Anda Ketahui

Read Time: 8 mins

Indonesian (Bahasa Indonesia) translation by Arif Hidayanto (you can also view the original English article)

Regular expressions adalah bahasa itu sendiri. Ketika Anda belajar bahasa pemrograman baru, mereka ini adalah sub-bahasa kecil yang tidak masuk akal pada pandangan pertama. Berkali-kali Anda harus membaca tutorial, artikel, atau buku yang berbeda hanya untuk memahami pola "sederhana" yang dijelaskan. Hari ini, kita akan mereview delapan regular expressions yang perlu Anda ketahui untuk pengkodean proyek berikutnya.

Sebelum kita mulai, Anda mungkin ingin memeriksa beberapa aplikasi regex di Envato Market, seperti RegEx Extractor.

Anda dapat mengekstrak email, proxy, nomor telepon, IP, alamat, HTML tag, URL, link, tanggal, dll. Hanya masukkan satu atau beberapa regular expressions dan sumber URL, dan memulai proses.

Ekstrak, kikis, urai, panen.

Contoh Penggunaan

  • Ekstrak email dari buku alamat CSV lama.
  • Ekstrak sumber gambar dari file HTML.
  • Ekstrak proxy dari situs online.
  • Ekstrak hasil URL dari Google.

Info latar belakang tentang Regular Expressions

Ini adalah apa yang Wikipedia katakan tentang mereka:

Dalam komputasi,regular expressions menyediakan sarana yang ringkas dan fleksibel untuk mengidentifikasi string teks menarik, seperti karakter tertentu, kata-kata atau pola karakter. Regular expressions (disingkat regex atau regexp, dengan bentuk-bentuk plural regexes, regexps atau regexen) ditulis dalam bahasa formal yang dapat ditafsirkan oleh ekspresi reguler processor, sebuah program yang berfungsi sebagai parser generator atau memeriksa teks dan mengidentifikasi bagian-bagian yang sesuai dengan spesifikasi yang disediakan.

Sekarang, itu tidak benar-benar memberitahu saya banyak tentang pola-pola yang sebenarnya. The regexes Aku akan saya review hari ini mengandung karakter seperti \ w, \ s, \ 1, dan banyak lainnya yang mewakili sesuatu yang sama sekali berbeda dari seperti apa yang terlihat.

Jika Anda ingin belajar sedikit tentang regular expressions sebelum Anda melanjutkan membaca artikel ini, saya sarankan untuk menonton seri screencast Regular Expressions untuk Dummies.

Delapan regular expressions yang akan kita review hari ini akan memungkinkan Anda untuk menyesuaikan a(n): username, password, email, nilai hex (seperti #fff atau #000), slug, URL, IP alamat, dan HTML tag. Seperti daftar turun, regular expressions lebih banyak dan lebih membingungkan. Gambar untuk setiap regex di awal mudah diikuti, tetapi empat terakhir lebih mudah dipahami dengan membaca penjelasannya.

Hal utama yang harus diingat tentang regular expressions adalah bahwa mereka hampir membaca maju dan mundur pada saat yang sama. Kalimat ini akan membuat lebih masuk akal ketika kita berbicara tentang tag HTML yang cocok.

Catatan: Pembatas yang digunakan dalam regular expressions adalah garis miring, "/". Setiap pola dimulai dan diakhiri dengan pembatas. Jika garis miring muncul dalam regex, kita harus menambah dengan garis miring terbalik: "\ /".


1. Pencocokan Username

Matching a usernameMatching a usernameMatching a username

Pola

Deskripsi

Kita mulai dengan mengatakan parser untuk menemukan awal dari string (^), diikuti oleh huruf kecil (a-z), angka (0-9), garis bawah, atau tanda hubung. Berikutnya, {3,16} memastikan bahwa setidaknya 3 dari karakter-karakter, tapi tidak lebih dari 16. Akhirnya, kita akhiri string dengan ($).

String yang cocok:

my-us3r_n4m3

String yang tidak cocok:

th1s1s-wayt00_l0ngt0beausername (terlalu panjang)


2. Pencocokan Password

Matching a passwordMatching a passwordMatching a password

Pola:

Deskripsi:

Pencocokan password sangat mirip dengan pencocokan username. Satu perbedaannya adalah bahwa alih-alih 3-16 huruf, angka, garis bawah, atau tanda hubung, kita ingin 6 sampai 18 dari mereka ({6,18}).

String yang cocok:

myp4ssw0rd

String yang tidak cocok:

mypa$$w0rd (mengandung tanda dolar)


3. Pencocokan Nilai Hex

Matching a hex valudMatching a hex valudMatching a hex valud

Pola:

Deskripsi:

Kita mulai dengan mengatakan parser untuk menemukan awal dari string (^). Berikutnya, tanda nomor adalah opsional karena diikuti tanda tanya. Tanda tanya memberitahu parser bahwa karakter sebelumnya - dalam hal ini tanda nomor - adalah opsional, tetapi untuk menjadi "serakah" dan mencapture atau menangkap itu jika itu ada. Berikutnya, di dalam kelompok pertama (kelompok pertama dari tanda kurung), kita dapat memiliki dua situasi yang berbeda. Yang pertama adalah setiap huruf kecil antara dan f atau nomor enam kali. Bar vertikal memberitahu kita bahwa kita juga dapat memiliki tiga huruf kecil antara dan f atau nomor sebagai gantinya. Akhirnya, kita akhiri string dengan ($).

Alasan bahwa saya menempatkan enam karakter sebelumnya adalah bahwa parser akan menangkap nilai hex seperti #ffffff. Apabila saya membalikkan itu, sehingga tiga karakter datang pertama, parser hanya akan mengambil # fff dan tidak tiga lainnya f ini.

String yang cocok:

#a3c113

String yang tidak cocok:

#4d82h4 (mengandung huruf h)


4. Pencocokan Slug

Matching a slugMatching a slugMatching a slug

Pola:

Deskripsi:

Anda akan menggunakan regex ini jika Anda pernah harus bekerja dengan mod_rewrite dan pretty URL. Kita mulai dengan mengatakan parser untuk menemukan awal dari string (^), diikuti oleh satu atau lebih (tanda plus) huruf, angka, atau tanda hubung. Akhirnya, kita akhiri string dengan ($).

String yang cocok:

my-title-here

String yang tidak cocok:

my_title_here (mengandung garis bawah)


5. Pencocokan Email:

Matching an emailMatching an emailMatching an email

Pola:

Deskripsi:

Kita mulai dengan mengatakan parser untuk menemukan awal dari string (^). Di dalam kelompok pertama, kita mencocokkan satu atau lebih huruf kecil, angka, garis bawah, titik, atau tanda hubung. Saya meloloskan dot karena tanpa meloloskan dot(titik) maka akan berarti karakter apapun. Langsung setelah itu, harus ada tanda. Berikutnya adalah nama domain yang harus: satu atau lebih huruf kecil, angka, garis bawah, titik, atau tanda hubung. Kemudian dot (lolos) lainnya, dengan ekstensi menjadi 2-6 huruf atau titik. Saya memiliki 2 sampai 6 karena beberapa negara memiliki TLD yang spesifik (.ny.us atau .co.uk). Akhirnya, kita akhiri string dengan ($).

String yang cocok:

john@doe.com

String yang tidak cocok:

ohn@doe.something (TLD terlalu panjang)


6. Pencocokan URL

Matching a urlMatching a urlMatching a url

Pola:

Deskripsi:

Regex ini hampir seperti mengambil bagian akhir dari regex di atas, menempatkannya antara "http: //" dan beberapa struktur file di akhir. Terdengar jauh lebih sederhana daripada yang sebenarnya. Untuk memulai, kita mencari awal baris dengan tanda sisipan.

Kelompok pertama menangkap semua pilihan. Hal ini memungkinkan URL untuk mulai dengan "http: //", "https: //", atau keduanya. Saya punya tanda tanya setelah s untuk memungkinkan URL yang memiliki http atau https. Dalam rangka untuk membuat seluruh kelompok ini opsional, saya hanya menambahkan tanda tanya untuk akhir itu.

Berikutnya adalah nama domain: satu atau lebih angka, huruf, titik, atau tanda hubung yang diikuti oleh dot kemudian dua hingga enam huruf atau lain titik-titik. Bagian berikutnya adalah file opsional dan direktori. Di dalam kelompok, kita ingin mencocokkan sejumlah garis miring ke depan, huruf, angka, garis bawah, spasi, titik, atau tanda hubung. Maka kita mengatakan bahwa kelompok ini dapat dicocokkan sebanyak yang kita inginkan. Cukup banyak ini memungkinkan beberapa direktori untuk dicocokkan bersama dengan file di akhir. Saya telah menggunakan bintang sebagai pengganti tanda tanya karena bintang mengatakan nol atau lebih, tidak nol atau satu. Jika tanda tanya digunakan di sana, hanya satu file / direktori akan bisa dicocokkan.

Kemudian garis miring cocok, tetapi itu bisa menjadi opsional. Akhirnya kita berakhir dengan akhir baris.

String yang cocok:

https://net.tutsplus.com/about

String yang tidak cocok:

http://google.com/some/file!.html (mengandung tanda seru)


7. Pencocokan Alamat IP

Matching an IP addressMatching an IP addressMatching an IP address

Pola:

Deskripsi:

Sekarang, aku tidak akan berbohong, saya tidak menulis regex ini; Saya mendapatkannya dari sini. Sekarang, itu tidak berarti bahwa saya tidak bisa merobek terpisah karakter untuk karakter.

Kelompok capture atau tangkap pertama benar-benar bukan kelompok yang diambil karena

ditempatkan di dalam yang menceritakan parser untuk tidak menangkap kelompok ini (lebih lanjut tentang ini dalam regex terakhir). Kita juga ingin kelompok yang tidak tangkap ini harus diulang tiga kali - {3} pada akhir kelompok. Kelompok ini berisi kelompok lain, subkelompok, dan titik literal. parser terlihat untuk pertandingan pada subkelompok kemudian titik untuk melanjutkan.

subkelompok juga kelompok lain yang tidak ditangkap. Ini hanya sekelompok set karakter (hal di dalam kurung): string "25" diikuti dengan angka antara 0 dan 5; atau string "2" dan angka antara 0 dan 4 dan sejumlah; atau opsional nol atau satu diikuti oleh dua nomor, dengan kedua menjadi opsional.

Setelah kita mencocokkan tiga dari mereka, itu ke kelompok non-tangkap berikutnya. satu ini ingin: string "25" diikuti dengan angka antara 0 dan 5; atau string "2" dengan angka antara 0 dan 4 dan nomor lain di akhir; atau opsional nol atau satu diikuti oleh dua nomor, dengan kedua menjadi opsional.

Kita akhiri regex membingungkan ini dengan akhir string.

String yang cocok:

73.60.124.136 (tidak, itu bukan alamat IP saya :P)

String yang tidak cocok:

256.60.124.136 (kelompok pertama harus "25" dan angka antara nol dan lima)


8. Pencocokan Tag HTML

Matching an HTML tagMatching an HTML tagMatching an HTML tag

Pola:

Deskripsi:

Salah satu regexes yang lebih berguna terdapat dalam daftar. Ini cocok dengan tag HTML dengan isi di dalamnya. Seperti biasanya, kita mulai dengan awal baris.

Pertama dimulai dengan nama tag. Ini harus menjadi salah satu huruf atau lebih panjang. Ini adalah kelompok tangkap pertama, datang berguna ketika kita harus ambil tag penutup. Hal berikutnya adalah atribut tag. Ini adalah karakter tapi lebih besar dari tanda (>). Karena ini adalah opsional, tapi saya ingin mencocokkan lebih dari satu karakter, bintang yang digunakan. Tanda plus membuat atribut dan nilai, dan bintang mengatakan banyak atribut yang Anda inginkan.

Berikutnya adalah kelompok non-tangkap ketiga. Di dalamnya, akan berisi baik lebih besar dari tanda, beberapa konten, dan tag penutup; atau beberapa ruang, garis miring, dan lebih besar dari tanda. Opsi pertama mencari yang lebih besar dari tanda diikuti oleh sejumlah karakter, dan tag penutup. \ 1 digunakan yang mana merupakan konten yang ditangkap dalam tangkapan kelompok pertama. Dalam hal ini adalah nama tag. Sekarang, jika itu tidak bisa dicocokkan kita akan mencari tag penutup sendiri (seperti img, br, atau tag hr). Ini perlu memiliki satu atau lebih spasi diikuti dengan "/>".

regex ini berakhir dengan baris terakhir.

String yang cocok:

Nettuts">http://net.tutsplus.com/">Nettuts+

String yang tidak cocok:

<img src="img.jpg" alt="My image>" /> (Atribut tidak boleh mengandung tanda)


Kesimpulan

Saya berharap bahwa Anda telah memahami ide-ide di balik regular expressions sedikit lebih baik. Mudah-mudahan Anda akan menggunakan regexes tersebut dalam proyek-proyek masa depan! Saring kali Anda tidak perlu untuk menguraikan karakter regex per karakter, tapi kadang-kadang jika Anda melakukannya ini membantu Anda belajar. Ingat, jangan takut degan regular expressions, mereka mungkin maya, tapi mereka membuat hidup Anda jauh lebih mudah. Hanya mencoba dan mengeluarkan nama tag dari string tanpa regular expressions!

Ikuti kami di Twitter, atau berlangganan di NETTUTS RSS Feed untuk lebih banyak artikel harian pengembangan web tuts. Dan memeriksa beberapa dari aplikasi tersebut regex di Envato Market.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Scroll to top
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.