MulaiMulai sekarang secara gratis

Tanda tanya dan dua maknanya

Operator OR berguna jika Anda tahu persis opsi mana yang valid, dan juga jika Anda yakin salah satu opsi tersebut ada. Namun bagaimana jika Anda ingin mencocokkan pola di mana satu bagian kadang ada dan kadang tidak? Di sinilah tanda tanya ? berperan:

? dapat membuat grup atau karakter sebelumnya menjadi opsional. Dengannya, suatu regular expression tetap cocok meskipun bagian tertentu dari polanya tidak ada. Namun perlu diingat, jika ? mengikuti pengganda seperti * atau +, tanda tanya dapat memiliki efek kedua:

? juga dapat membuat pengganda sebelumnya menjadi "lazy" alih-alih "greedy". Artinya, alih-alih regular expression mencari jumlah karakter maksimum, ? memungkinkan pencarian jumlah kecocokan teks minimum.

Latihan ini adalah bagian dari kursus

Ekspresi Reguler Tingkat Menengah di R

Lihat Kursus

Petunjuk latihan

  • Cocokkan bentuk tunggal "Screen" maupun bentuk jamak "Screens" dengan menjadikan "s" terakhir bersifat opsional.
  • Cocokkan jumlah karakter sebarang secara acak sebelum sebuah koma dengan menggunakan .*.
  • Cocokkan pola yang sama dengan sebuah tanda tanya ? setelah bintang tersebut — apakah Anda melihat perbedaannya?

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Match both Screen and Screens by making the last "s" optional
str_match(lines, pattern = "Screens___")

# Match a random amount of arbitrary characters, followed by a comma
str_match(lines, pattern = "___,")

# Match the same pattern followed by a comma, but the "lazy" way
str_match(lines, pattern = "___,")
Edit dan Jalankan Kode