0Pricing
Ruby Academy · Pelajaran

Substitusi

gsub dengan pola.

Substitusi adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

Mengganti Teks dengan sub

String#sub mengganti kecocokan pertama dari suatu pola dengan teks pengganti. Teks asli tidak diubah; teks baru dikembalikan.

s = 'hello world'
puts(s.sub(/world/, 'Ruby'))
puts s

Mengganti Semua dengan gsub

gsub berarti penggantian global. Metode ini mengganti setiap kecocokan, bukan hanya kecocokan pertama.

puts('a-b-c-d'.gsub(/-/, '_'))
puts('one two two'.gsub(/two/, 'three'))

Pola dalam Penggantian

Argumen pertama untuk gsub dapat berupa ekspresi reguler lengkap, sehingga Anda dapat mencocokkan pola yang fleksibel, bukan hanya teks tetap.

puts('id42 id7 id100'.gsub(/\d+/, '#'))
puts('a1b2c3'.gsub(/[0-9]/, '*'))

Referensi Balik dalam Penggantian

Dalam teks pengganti, Anda dapat merujuk kelompok yang ditangkap dengan \1, \2, dan seterusnya.

puts('2026-05-30'.gsub(/(\d{4})-(\d{2})-(\d{2})/, '\3/\2/\1'))

Referensi Balik untuk Kecocokan Utuh

\0 atau \& merujuk pada seluruh teks yang cocok dan berguna untuk membungkus kecocokan.

puts('cat dog'.gsub(/\w+/, '[\0]'))

Bentuk Blok gsub

gsub menerima sebuah blok. Setiap kecocokan diteruskan ke blok, dan nilai yang dikembalikan blok menjadi penggantinya. Dengan demikian, Anda dapat menghitung penggantian secara dinamis.

result = 'a1 b2 c3'.gsub(/\d/) { |d| (d.to_i * 10).to_s }
puts result

Mengubah Kecocokan Menjadi Huruf Besar

Bentuk blok memudahkan transformasi. Di sini, kami mengubah setiap kata menjadi diawali huruf besar.

title = 'the great escape'.gsub(/\w+/) { |w| w.capitalize }
puts title

Penggantian dengan Hash

Jika Anda meneruskan sebuah tabel hash sebagai argumen kedua, setiap kecocokan dicari sebagai kunci lalu diganti dengan nilainya. Ini sangat berguna untuk peta terjemahan.

map = { 'cat' => 'kedi', 'dog' => 'kopek' }
puts('cat and dog'.gsub(/cat|dog/, map))

Versi yang Mengubah Langsung

sub! dan gsub! mengubah teks secara langsung dan mengembalikan nil jika tidak ada perubahan.

s = 'hello'
s.gsub!(/l/, 'L')
puts s
puts(s.gsub!(/z/, 'x').inspect)

Menghapus Teks

Untuk menghapus kecocokan, ganti kecocokan tersebut dengan teks kosong.

puts('h e l l o'.gsub(/\s/, ''))
puts('price: $42'.gsub(/[^0-9]/, ''))

Referensi Balik Kelompok Bernama

Anda dapat memberi nama pada kelompok dengan (?<name>...) dan merujuknya dalam penggantian menggunakan \k<name>.

out = 'John Smith'.gsub(/(?<first>\w+) (?<last>\w+)/, '\k<last>, \k<first>')
puts out

Pemeriksaan Singkat

Apa perbedaan antara sub dan gsub?

Ringkasan: Penggantian

Anda telah mempelajari cara mengubah teks menggunakan pola:

  • sub untuk kecocokan pertama, gsub untuk semua kecocokan
  • Referensi balik \1 dan \& dalam penggantian
  • Bentuk blok menghitung penggantian secara dinamis
  • Argumen tabel hash memetakan kecocokan ke nilai
  • sub! / gsub! mengubah teks secara langsung
puts('foo bar baz'.gsub(/b\w+/) { |w| w.upcase })

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Substitusi” gratis?

Ya — teks lengkap “Substitusi” 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 “Substitusi”?

gsub dengan 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 3 dari 4.

Berapa lama pelajaran “Substitusi” 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