0Pricing
Ruby Academy · Pelajaran

Literal Regex

Dasar-Dasar Pola.

Literal Regex adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.

Apa Itu Ekspresi Reguler?

Ekspresi reguler adalah pola yang digunakan untuk mencocokkan teks. Di Ruby, ekspresi reguler adalah objek kelas satu dari kelas Regexp.

Anda menggunakan ekspresi reguler untuk mencari, memvalidasi, dan mengekstrak bagian dari teks.

  • Mencocokkan kata, digit, atau simbol
  • Memvalidasi alamat email dan nomor telepon
  • Mengekstrak bagian-bagian dari teks yang tidak terstruktur
pattern = /hello/
puts pattern.class
puts(pattern.match?('hello world'))

Literal Ekspresi Reguler dengan Garis Miring

Cara paling umum untuk menulis ekspresi reguler di Ruby adalah dengan menempatkannya di antara dua garis miring: /pattern/.

Ini disebut literal ekspresi reguler. Semua yang berada di antara garis miring tersebut adalah polanya.

ruby = /ruby/
puts ruby.class
puts(ruby.match?('I love ruby'))
puts(ruby.match?('I love python'))

Operator Pencocokan =~

Operator =~ menguji sebuah teks terhadap ekspresi reguler. Operator ini mengembalikan indeks kecocokan pertama, atau nil jika tidak ada kecocokan.

puts('hello world' =~ /world/)
puts(('hello world' =~ /xyz/).inspect)

match? untuk Jawaban Ya atau Tidak

Jika Anda hanya memerlukan jawaban ya atau tidak, gunakan match?. Metode ini mengembalikan true atau false dan lebih cepat karena tidak membuat objek MatchData.

puts(/\d/.match?('abc123'))
puts(/\d/.match?('abcdef'))

Kelas Karakter

Kelas karakter di dalam tanda kurung siku mencocokkan satu karakter apa pun dari suatu himpunan.

  • [abc] mencocokkan a, b, atau c
  • [a-z] mencocokkan huruf kecil apa pun
  • [0-9] mencocokkan digit apa pun
puts(/[aeiou]/.match?('sky'))
puts(/[aeiou]/.match?('tree'))
puts(/[0-9]/.match?('room 7'))

Kelas Singkatan

Ruby menyediakan escape singkat untuk kelas karakter yang umum:

  • \d berarti digit, \D berarti bukan digit
  • \w berarti karakter kata (huruf, digit, atau garis bawah)
  • \s berarti karakter spasi, \S berarti bukan karakter spasi
puts(/\d\d/.match?('age 42'))
puts(/\w+/.match?('hello_99'))
puts(/\s/.match?('no_space'))

Titik dan Pengulang

Titik . mencocokkan satu karakter apa pun (kecuali baris baru). Pengulang mengatur pengulangan:

  • * nol kali atau lebih
  • + satu kali atau lebih
  • ? nol kali atau satu kali
  • {2,4} antara 2 dan 4 kali
puts(/ab+c/.match?('abbbc'))
puts(/colou?r/.match?('color'))
puts(/\d{3}/.match?('id 451'))

Alternasi dengan Tanda Pipa

Tanda pipa | berarti OR. Pola cat|dog mencocokkan salah satu dari kedua kata tersebut.

Gunakan tanda kurung untuk mengelompokkan alternasi di dalam pola yang lebih besar.

pet = /cat|dog/
puts(pet.match?('I have a dog'))
puts(pet.match?('I have a fish'))
puts(/^(yes|no)$/.match?('yes'))

Bendera Tanpa Membedakan Huruf Besar dan Kecil

Tambahkan bendera i setelah garis miring penutup agar pencocokan tidak membedakan huruf besar dan kecil.

Bendera lain yang berguna mencakup m (titik mencocokkan baris baru) dan x (mode diperluas, mengabaikan spasi).

puts(/ruby/i.match?('I love RUBY'))
puts(/ruby/.match?('I love RUBY'))

Membuat Ekspresi Reguler dari Teks

Anda dapat membuat ekspresi reguler saat program berjalan dengan Regexp.new. Gunakan Regexp.escape untuk menyertakan masukan pengguna dengan aman, karena masukan tersebut mungkin mengandung karakter khusus.

word = 'price'
pattern = Regexp.new(word)
puts(pattern.match?('the price is high'))
puts(Regexp.escape('a.b*c'))

Pratinjau Jangkar

Jangkar mencocokkan posisi, bukan karakter:

  • ^ awal baris
  • $ akhir baris
  • \A awal teks
  • \z akhir teks

Anda akan mempelajari ini secara mendalam nanti.

puts(/^Hello/.match?('Hello there'))
puts(/world$/.match?('hello world'))

Pemeriksaan Singkat

Apa yang dikembalikan operator =~ ketika ekspresi reguler mencocokkan sebuah teks?

Ringkasan: Literal Ekspresi Reguler

Anda telah mempelajari dasar-dasar ekspresi reguler Ruby:

  • Literal ekspresi reguler ditulis di antara /slashes/
  • =~ mengembalikan indeks, sedangkan match? mengembalikan true/false
  • Kelas karakter [ ] dan bentuk singkat \d \w \s
  • Pengulang * + ? {n,m} dan alternasi |
  • Bendera i membuat pencocokan tidak membedakan huruf besar dan kecil

Selanjutnya Anda akan menangkap bagian-bagian yang cocok.

puts(/\w+@\w+\.\w+/i.match?('USER@Mail.com'))

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Literal Regex” gratis?

Ya — teks lengkap “Literal Regex” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Literal Regex”?

Dasar-Dasar Pola. Kamu berlatih Ruby Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Ruby Academy?

Tidak diperlukan pengalaman sebelumnya. Ruby Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Literal Regex” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Ruby Academy ini?

Ya. Setiap pelajaran Ruby Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Literal Regex
  2. Pencocokan dan Penangkapan
  3. Substitusi
  4. Grup Bernama dan Anchor
← Kembali ke Ruby Academy