Literal Regex
Asas corak
Literal Regex ialah pelajaran Ruby Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ruby Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ruby Academy merangkumi sejumlah 4 pelajaran.
Apakah Ungkapan Biasa?
Ungkapan biasa ialah corak yang digunakan untuk memadankan teks. Dalam Ruby, ungkapan biasa ialah objek kelas pertama daripada kelas Regexp.
Anda menggunakan ungkapan biasa untuk mencari, mengesahkan, dan mengeluarkan bahagian daripada rentetan.
- Padankan perkataan, digit, atau simbol
- Sahkan alamat e-mel dan nombor telefon
- Keluarkan bahagian daripada teks yang tidak teratur
pattern = /hello/
puts pattern.class
puts(pattern.match?('hello world'))Literal Ungkapan Biasa dengan Palang
Cara paling biasa untuk menulis ungkapan biasa dalam Ruby adalah antara dua palang: /pattern/.
Ini dipanggil literal ungkapan biasa. Semua yang berada antara palang itu ialah coraknya.
ruby = /ruby/
puts ruby.class
puts(ruby.match?('I love ruby'))
puts(ruby.match?('I love python'))Operator =~ untuk Memadankan
Operator =~ menguji rentetan terhadap ungkapan biasa. Operator ini mengembalikan indeks padanan pertama atau nil jika tiada padanan.
puts('hello world' =~ /world/)
puts(('hello world' =~ /xyz/).inspect)match? untuk Jawapan Ya atau Tidak
Apabila anda hanya memerlukan jawapan ya atau tidak, gunakan match?. Ia mengembalikan true atau false dan lebih pantas kerana tidak membina objek MatchData.
puts(/\d/.match?('abc123'))
puts(/\d/.match?('abcdef'))Kelas Aksara
Kelas aksara dalam kurungan siku memadankan mana-mana satu aksara daripada suatu set.
[abc]memadankan a, b, atau c[a-z]memadankan mana-mana huruf kecil[0-9]memadankan mana-mana digit
puts(/[aeiou]/.match?('sky'))
puts(/[aeiou]/.match?('tree'))
puts(/[0-9]/.match?('room 7'))Kelas Ringkas
Ruby menyediakan aksara singkatan untuk kelas aksara yang biasa:
\dialah digit,\Dialah bukan digit\wialah aksara perkataan (huruf, digit, garis bawah)\sialah ruang kosong,\Sialah bukan ruang kosong
puts(/\d\d/.match?('age 42'))
puts(/\w+/.match?('hello_99'))
puts(/\s/.match?('no_space'))Titik dan Pengkuantiti
Titik . memadankan mana-mana satu aksara (kecuali baris baharu). Pengkuantiti mengawal pengulangan:
*sifar kali atau lebih+sekali atau lebih?sifar kali atau sekali{2,4}antara 2 hingga 4 kali
puts(/ab+c/.match?('abbbc'))
puts(/colou?r/.match?('color'))
puts(/\d{3}/.match?('id 451'))Alternatif dengan Palang
Palang | bermaksud OR. Corak cat|dog memadankan salah satu daripada kedua-dua perkataan itu.
Gunakan tanda kurung untuk mengumpulkan alternatif dalam corak 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 Tidak Peka Huruf Besar dan Kecil
Tambahkan bendera i selepas palang penutup untuk menjadikan padanan tidak peka huruf besar dan kecil.
Bendera lain yang berguna termasuk m (titik memadankan baris baharu) dan x (lanjutan, mengabaikan ruang kosong).
puts(/ruby/i.match?('I love RUBY'))
puts(/ruby/.match?('I love RUBY'))Membina Ungkapan Biasa daripada Rentetan
Anda boleh membina ungkapan biasa semasa masa jalan dengan Regexp.new. Gunakan Regexp.escape untuk memasukkan masukan pengguna yang mungkin mengandungi aksara khas dengan selamat.
word = 'price'
pattern = Regexp.new(word)
puts(pattern.match?('the price is high'))
puts(Regexp.escape('a.b*c'))Pratonton Penambat
Penambat memadankan kedudukan, bukan aksara:
^permulaan baris$penghujung baris\Apermulaan rentetan\zpenghujung rentetan
Anda akan mempelajarinya dengan lebih mendalam kemudian.
puts(/^Hello/.match?('Hello there'))
puts(/world$/.match?('hello world'))Semakan Pantas
Apakah yang dikembalikan oleh operator =~ apabila ungkapan biasa memadankan rentetan?
Ulang Kaji: Literal Ungkapan Biasa
Anda telah mempelajari asas ungkapan biasa Ruby:
- Literal ungkapan biasa ditulis antara
/slashes/ =~mengembalikan indeks, manakalamatch?mengembalikan benar/palsu- Kelas aksara
[ ]dan bentuk ringkas\d \w \s - Pengkuantiti
* + ? {n,m}dan alternatif| - Bendera
imenjadikan padanan tidak peka huruf besar dan kecil
Seterusnya, anda akan menangkap bahagian yang dipadankan.
puts(/\w+@\w+\.\w+/i.match?('USER@Mail.com'))Pelajari Ruby dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 29
- Pelajaran
- 109
Soalan Lazim
Adakah pelajaran “Literal Regex” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Ruby Academy, termasuk “Literal Regex”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Ruby Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Literal Regex”?
Asas corak Anda berlatih Ruby Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Ruby Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Ruby Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Literal Regex” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Ruby Academy ini?
Ya. Setiap pelajaran Ruby Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.