Lewati ke konten utama

Panduan Ekspresi Reguler R

Jelajahi ekspresi reguler di R, mengapa penting, alat dan fungsi untuk bekerja dengannya, pola regex yang umum, dan cara menggunakannya.
· 12 mnt Baca

Jelajahi bersama AI

Konsep ekspresi reguler, yang biasanya disebut regex, ada di banyak bahasa pemrograman seperti R, Python, C, C++, Perl, Java, dan JavaScript. Anda dapat mengakses fungsionalitas regex baik di versi dasar bahasa-bahasa tersebut maupun melalui pustaka. Untuk sebagian besar bahasa pemrograman, sintaks pola regex serupa.

Dalam tutorial ini, kita akan membahas apa itu ekspresi reguler di R, mengapa penting, alat dan fungsi apa yang memungkinkan kita bekerja dengannya, pola regex mana yang paling umum, dan cara menggunakannya. Di akhir, kita akan meninjau beberapa penerapan lanjutan regex R.

Apa Itu Regex R dan Mengapa Anda Harus Menggunakannya?

Sebuah ekspresi reguler, regex, di R adalah urutan karakter (bahkan satu karakter) yang mendeskripsikan pola tertentu yang ditemukan dalam teks. Pola regex dapat sesingkat ‘a’ atau sepanjang yang disebutkan dalam thread StackOverflow ini.

Secara umum, definisi regex di atas tidak hanya terkait dengan R tetapi juga berlaku untuk bahasa pemrograman lain yang mendukung ekspresi reguler.

Regex merupakan alat yang sangat fleksibel dan kuat yang banyak digunakan untuk memroses dan menambang data teks tak terstruktur. Misalnya, regex digunakan dalam mesin pencari, analisis leksikal, penyaringan spam, dan editor teks.

Alat dan Fungsi untuk Bekerja dengan Regex R

Walau pola regex serupa pada sebagian besar bahasa pemrograman, fungsi untuk bekerja dengannya berbeda-beda.

Di R, kita dapat menggunakan fungsi base R untuk mendeteksi, mencocokkan, menemukan lokasi, mengekstrak, dan mengganti regex. Di bawah ini adalah fungsi utama yang mencari kecocokan regex dalam sebuah vektor karakter dan kemudian melakukan hal berikut:

  • grep(), grepl() – mengembalikan indeks string yang berisi kecocokan (grep()) atau vektor logika yang menunjukkan string mana yang berisi kecocokan (grepl()).

  • regexpr(), gregexpr() – mengembalikan indeks pada tiap string tempat kecocokan dimulai dan panjang kecocokan tersebut. regexpr() memberikan informasi ini hanya untuk kecocokan pertama (dari kiri), sedangkan gregexpr() melakukan hal yang sama untuk semua kecocokan.

  • sub(), gsub() – mengganti kecocokan yang terdeteksi pada tiap string dengan string tertentu (sub() – hanya untuk kecocokan pertama, gsub() – untuk semua kecocokan).

  • regexec() – bekerja seperti regexpr() tetapi juga mengembalikan informasi yang sama untuk sub-ekspresi tertentu di dalam kecocokan.

  • regmatches() – bekerja seperti regexec() tetapi mengembalikan string persis yang terdeteksi untuk keseluruhan kecocokan dan sub-ekspresi tertentu.

Namun, alih-alih menggunakan fungsi R bawaan, cara yang lebih praktis dan konsisten untuk bekerja dengan regex R adalah menggunakan paket khusus stringr dari kumpulan tidyverse. Pustaka ini dibangun di atas paket stringi. Di pustaka stringr, semua fungsi diawali dengan str_ dan memiliki nama yang jauh lebih intuitif (begitu juga nama parameter opsionalnya) dibandingkan dengan base R.

Untuk memasang dan memuat paket stringr, jalankan perintah berikut:

install.packages('stringr')
library(stringr)

Tabel di bawah menunjukkan korespondensi antara fungsi stringr dan base R yang telah kita bahas sebelumnya pada bagian ini:

stringr

Base R

str_subset()

grep()

str_detect()

grepl()

str_extract()

regexpr(), regmatches(), grep()

str_match()

regexec()

str_locate()

regexpr()

str_locate_all()

gregexpr()

str_replace()

sub()

str_replace_all()

gsub()

Anda dapat menemukan daftar lengkap fungsi stringr dan ekspresi reguler pada lembar contekan ini, tetapi beberapa di antaranya akan kita bahas lebih lanjut dalam tutorial ini.

Catatan: dalam fungsi stringr, kita memasukkan data terlebih dahulu lalu regex, sedangkan pada fungsi base R – kebalikannya.

Catatan lain: Tutorial ini menggunakan stringr 1.5.1, versi saat ini per 2026. Jika Anda menggunakan versi yang lebih lama, beberapa perilaku mungkin berbeda — khususnya terkait str_view(), yang diperbarui secara signifikan pada 1.5.0.

Pola Regex R

Sekarang, kita akan meninjau pola regex R yang paling populer beserta penggunaannya dan, pada saat yang sama, mempraktikkan beberapa fungsi stringr.

Sebelum itu, mari lihat contoh sangat dasar. Yakni, mari cek apakah unicorn memiliki setidaknya satu tanduk 😉

str_detect('unicorn', 'corn')

Keluaran:

TRUE

Pada contoh ini, kita menggunakan fungsi stringr str_detect() untuk memeriksa keberadaan string corn dalam string unicorn.

Namun, biasanya kita tidak mencari string literal tertentu dalam potongan teks, melainkan pola tertentu – sebuah ekspresi reguler. Mari selami dan jelajahi pola-pola tersebut.

Character Escapes

Ada beberapa karakter yang memiliki makna khusus saat digunakan dalam ekspresi reguler R. Lebih tepatnya, mereka tidak mencocokkan dirinya sendiri, seperti huruf dan digit, tetapi melakukan sesuatu yang berbeda:

str_extract_all('unicorn', '.')

Keluaran:

1. 'u' 'n' 'i' 'c' 'o' 'r' 'n'

Kita jelas melihat tidak ada titik dalam unicorn kita. Namun, fungsi str_extract_all() mengekstrak setiap karakter tunggal dari string ini. Inilah misi tepat karakter . – mencocokkan karakter tunggal apa pun kecuali baris baru.

Bagaimana jika kita ingin mengekstrak titik literal? Untuk itu, kita harus menggunakan karakter escape regex sebelum titik – backslash (\). Namun, ada jebakan yang perlu diingat: backslash juga digunakan dalam string itu sendiri sebagai karakter escape. Ini berarti kita harus terlebih dahulu “meng-escape karakter escape,” dengan menggunakan backslash ganda. Mari lihat cara kerjanya:

str_extract_all('Eat. Pray. Love.', '\\.')

Keluaran:

1. '.' '.' '.'

Jadi, backslash membantu mengabaikan makna khusus dari beberapa simbol dalam ekspresi reguler R dan menafsirkannya secara literal. Ia juga memiliki misi sebaliknya: memberi makna khusus pada beberapa karakter yang sebaliknya akan ditafsirkan secara literal. Di bawah ini adalah tabel urutan escape karakter yang paling sering digunakan:

Regex R

Yang dicocokkan

\b

Batas kata (batas antara \w dan \W)

\B

Bukan batas kata (\w-\w atau \W-\W)

\n

Baris baru

\t

Tab

\v

Tab vertikal

Mari lihat beberapa contoh dengan mengingat bahwa pada kasus-kasus ini pun, kita harus menggunakan backslash ganda. Pada saat yang sama, kita akan memperkenalkan fungsi stringr lain: str_view() untuk menampilkan render HTML dari kecocokan pertama atau semua kecocokan:

str_view('Unicorns are so cute!', 's\\b')
str_view('Unicorns are so cute!', 's\\B')

Keluaran:

Unicorns are so cute!
Unicorns are so cute!

Dalam string Unicorns are so cute!, ada dua kemunculan huruf s. Di atas, pola regex R pertama menyoroti kemunculan pertama huruf s (karena diikuti spasi), sedangkan yang kedua – kemunculan kedua (karena diikuti huruf lain, bukan batas kata).

Beberapa contoh lagi:

cat('Unicorns are\nso cute!')
str_view('Unicorns are\nso cute!', '\\n')

Keluaran:

Unicorns are
so cute!

Unicorns are_so cute!

cat('Unicorns are\tso cute!')
str_view('Unicorns are\tso cute!', '\\t')

Keluaran:

Unicorns are so    cute!

Unicorns are_so cute!

Kelas Karakter

Kelas karakter mencocokkan karakter mana pun dari himpunan karakter yang telah ditentukan. Kelas karakter bawaan memiliki sintaks yang sama seperti urutan escape karakter yang kita lihat pada bagian sebelumnya: sebuah backslash diikuti huruf yang diberinya makna khusus alih-alih makna literal. Konstruksi yang paling populer ditunjukkan di bawah ini:

Regex R

Yang dicocokkan

\w

Karakter kata apa pun (huruf, digit, atau garis bawah)

\W

Karakter non-kata apa pun

\d

Digit apa pun

\D

Non-digit apa pun

\s

Karakter spasi apa pun (spasi, tab, baris baru, dll.)

\S

Karakter non-spasi apa pun

Mari lihat beberapa contoh yang cukup jelas:

str_view('Unicorns are so cute!', '\\w')
str_view('Unicorns are so cute!', '\\W')

Keluaran:

[1] │ <U><n><i><c><o><r><n><s>< ><a><r><e>< ><s><o>< ><c><u><t><e>!
[1] │ Unicorns< >are< >so< >cute<!>
str_view('Unicorns are\nso cute!', '\\s')
str_view('Unicorns are\nso cute!', '\\S')

Keluaran:

Unicorns are<\n>so cute!
str_detect('Unicorns are so cute!', '\\d')

Keluaran:

FALSE

Kelas karakter bawaan juga dapat muncul dalam bentuk alternatif – [:character_class_name:]. Beberapa kelas karakter ini memiliki padanan di antara yang menggunakan backslash; yang lain tidak. Yang paling umum adalah:

Regex R

Yang dicocokkan

[:alpha:]

Huruf apa pun

[:lower:]

Huruf kecil apa pun

[:upper:]

Huruf besar apa pun

[:digit:]

Digit apa pun (setara dengan \d)

[:alnum:]

Huruf atau angka apa pun

[:xdigit:]

Digit heksadesimal apa pun

[:punct:]

Karakter tanda baca apa pun

[:graph:]

Huruf, angka, atau karakter tanda baca apa pun

[:space:]

Spasi, tab, baris baru, dll. (setara dengan \s)

Mari jelajahi beberapa contoh dengan mengingat bahwa kita harus menempatkan salah satu pola regex R di atas di dalam tanda kurung siku:

str_view('Unicorns are so cute!', '[[:upper:]]')
str_view('Unicorns are so cute!', '[[:lower:]]')

Keluaran:

Unicorns are so cute!

Unicorns are so cute!

str_detect('Unicorns are so cute!', '[[:digit:]]')

Keluaran:

FALSE
str_extract_all('Unicorns are so cute!', '[[:punct:]]')

Keluaran:

1. '!'
str_view('Unicorns are so cute!', '[[:space:]]')

Keluaran:

Unicorns_are_so_cute!

Kita juga dapat membuat kelas karakter yang ditentukan pengguna dengan menaruh di dalam tanda kurung siku himpunan karakter apa pun tempat kita ingin mencocokkan satu karakter apa pun. Kita dapat memasukkan rentang huruf atau angka (dalam urutan Unicode), beberapa rentang berbeda, atau himpunan karakter atau kelompok karakter berurutan maupun tidak berurutan.

Contohnya, [A-D] akan mencocokkan huruf besar apa pun dari A hingga D inklusif, [k-r] – huruf kecil apa pun dari k hingga r inklusif, [0-7] – digit apa pun dari 0 hingga 7 inklusif, dan [aou14%9] – salah satu karakter yang diberikan di dalam kurung siku. Jika kita menaruh tanda sisipan (⁠^) sebagai karakter pertama di dalam kurung siku, pola regex R kita akan mencocokkan apa saja kecuali karakter yang disediakan. Perhatikan bahwa mekanisme pencocokan di atas peka huruf besar-kecil.

str_view('Unicorns Are SOOO Cute!', '[O-V]')
str_view('Unicorns Are SOOO Cute!', '[^O-V]')

Keluaran:

Unicorns Are SOOO Cute!

Unicorns Are SOOO Cute!

str_view('3.14159265359', '[0-2]')

Keluaran:

3.14159265359

str_view('The number pi is equal to 3.14159265359', '[n2e9&]')

Keluaran:

The number pi is equal to 3.14159265359

Kuantifikator

Sering kali, kita perlu mencocokkan pola regex R tertentu secara berulang, alih-alih hanya sekali. Untuk itu, kita menggunakan kuantifikator. Sebuah kuantifikator selalu diletakkan setelah pola regex yang terkait dengannya. Kuantifikator yang paling umum diberikan dalam tabel di bawah ini:

Regex R

Jumlah pengulangan pola

*

0 atau lebih

+

setidaknya 1

?

paling banyak 1

{n}

tepat n

{n,}

setidaknya n

{n,m}

setidaknya n dan paling banyak m

Mari coba semuanya:

str_extract('dog', 'dog\\d*')

Keluaran:

'dog'

Kita mendapatkan string awal dog: tidak ada digit di akhir string tersebut, tetapi itu tidak masalah (0 atau lebih kemunculan digit).

str_extract('12345', '\\d+')

Keluaran:

'12345'
str_extract('12345', '\\d?')

Keluaran:

'1'
str_extract('12345', '\\d{3}')

Keluaran:

'123'
str_extract('12345', '\\d{7,}')

Keluaran:

NA

Kita mendapatkan NA karena kita tidak memiliki setidaknya 7 digit dalam string, hanya 5 digit.

str_extract('12345', '\\d{2,4}')

Keluaran:

'1234'

Jangkar (Anchors)

Secara bawaan, regex R akan mencocokkan bagian mana pun dari string yang diberikan. Kita dapat mengubah perilaku ini dengan menetapkan posisi tertentu dari pola regex R di dalam string. Paling sering, kita mungkin ingin memaksa kecocokan dari awal atau akhir string. Untuk itu, kita menggunakan dua jangkar utama dalam ekspresi reguler R:

  • ^ – mencocokkan dari awal string (untuk string multibaris – awal setiap baris)

  • $ – mencocokkan dari akhir string (untuk string multibaris – akhir setiap baris)

Mari lihat bagaimana cara kerjanya pada contoh palindrom stella won no wallets:

str_view('stella won no wallets', '^s')
str_view('stella won no wallets', 's$')

Keluaran:

<s>tella won no wallets
stella won no wallet<s>

Jika kita ingin mencocokkan karakter ^ atau $ itu sendiri, kita perlu mendahului karakter yang dimaksud dengan backslash (digandakan):

str_view('Do not have 100$, have 100 friends', '\\$')

Keluaran:

Do not have 100$, have 100 friends

Kita juga dapat menjangkar kecocokan ke batas kata atau bukan batas kata di dalam string (\b dan \B masing-masing):

str_view('road cocoa oasis oak boa coach', '\\boa')
str_view('road cocoa oasis oak boa coach', 'oa\\b')
str_view('road cocoa oasis oak boa coach', 'oa\\B')

Keluaran:

road cocoa oasis oak boa coach

road cocoa oasis oak boa coach

road cocoa oasis oak boa coach

Di atas, kita mencocokkan kombinasi huruf oa:

  • Contoh ke-1 – di awal kata
  • Contoh ke-2 – di akhir kata
  • Contoh ke-3 – kapan pun diikuti karakter kata (dalam kasus kita – huruf)

Alternasi

Dengan menerapkan operator alternasi (|), kita dapat mencocokkan lebih dari satu pola regex R pada string yang sama. Perhatikan bahwa jika kita menggunakan operator ini sebagai bagian dari kelas karakter yang ditentukan pengguna, operator ini ditafsirkan secara literal, sehingga tidak melakukan alternasi.

str_view('coach koala board oak cocoa road boa load coat oasis boat', 'boa|coa')

Keluaran:

coach koala board oak cocoa road boa load coat oasis boat

Pada contoh di atas, kita mencocokkan semua kemunculan boa atau coa.

Pengelompokan

Pola regex R mengikuti aturan prioritas tertentu. Misalnya, pengulangan (menggunakan kuantifikator) diprioritaskan atas penjangkaran, sementara penjangkaran lebih diutamakan daripada alternasi. Untuk menimpa aturan ini dan meningkatkan prioritas suatu operasi tertentu, kita harus menggunakan pengelompokan. Ini dapat dilakukan dengan menutup subekspresi yang diminati dalam tanda kurung biasa.

Pengelompokan paling efektif bila dikombinasikan dengan operator alternasi. Contoh di bawah ini jelas menunjukkan efek dari kombinasi tersebut:

str_view('code rat coat cot cat', 'co|at')
str_view('code rat coat cot cat', 'c(o|a)t')

Keluaran:

code rat coat cot cat

code rat coat cot cat

Penerapan Lanjutan Ekspresi Reguler R

Semua yang telah kita bahas sejauh ini memberi kita dasar yang baik untuk mulai bekerja dengan ekspresi reguler R. Namun, masih banyak hal lain yang dapat kita lakukan dengan alat yang kuat ini. Tanpa masuk ke detail, mari sebutkan beberapa operasi lanjutan yang dapat kita lakukan dengan regex R:

  • Menimpa nilai bawaan fungsi stringr
  • Mencocokkan klaster grafem
  • Backreferencing grup
  • Mencocokkan properti Unicode
  • Menerapkan teknik escape karakter lanjutan
  • Memverifikasi keberadaan pola tanpa menyertakannya dalam keluaran (lookaround)
  • Membuat mekanisme pengulangan pola menjadi malas (lazy) alih-alih rakus (greedy)
  • Bekerja dengan grup atomik

Pelajari lebih lanjut di kursus kami Intermediate Regular Expressions in R.

Tantangan Regex R

Sekarang giliran Anda untuk mempraktikkan pola regex R yang telah kita bahas di tutorial ini. Untuk melakukannya, gunakan Dataset: Internet News and Consumer Engagement kami, dan coba lakukan hal berikut: ekstrak top-level domain (TLD) dari semua URL. Beberapa contoh TLD adalah com, net, uk, dll.

Ada lebih dari satu pendekatan untuk menyelesaikan tugas ini, termasuk solusi satu baris yang elegan dan ringkas (petunjuk: Anda dapat mempelajari lebih lanjut tentang lookaround di regex R yang disebutkan pada bagian sebelumnya dan menggunakannya untuk menyelesaikan masalah ini). Pertimbangkan panduan yang sangat longgar berikut untuk pendekatan yang relatif “pemula”:

  • Periksa beberapa URL dalam dataset dan perhatikan pola mana yang selalu ada di sebelum TLD dan mana yang bersifat opsional
  • Perhatikan apakah ada pola yang wajib pada URL mana pun setelah TLD (dan jika ada, yang mana) serta pola mana yang opsional
  • Hapus semua yang ada sebelum TLD dari URL
  • Hapus semua yang ada setelah TLD dari URL

Untuk menyelesaikan masalah dengan algoritme di atas, Anda tidak perlu melakukan atau mempelajari hal lain. Cukup segarkan semua yang telah kita bahas dalam tutorial ini dan terapkan pengetahuan Anda. Khususnya, Anda akan memerlukan fungsi stringr, character escapes, kelas karakter, kuantifikator, dan pengelompokan.

Bonus: Tantangan #2

Jika Anda ingin lebih banyak latihan, kali ini tanpa petunjuk, coba lakukan hal berikut: menggunakan dataset yang sama dari tantangan sebelumnya, ekstrak nama domain dari semua URL. Contoh nama domain adalah google dalam URL www.google.com.

Kesimpulan

Sebagai penutup, dalam tutorial ini, kita mempelajari banyak hal tentang ekspresi reguler R. Secara khusus, kita membahas:

  • Apa itu regex R
  • Mengapa regex penting dan di mana diterapkan
  • Fungsi apa (dari R bawaan dan pustaka khusus) yang digunakan untuk bekerja dengan ekspresi reguler R
  • Pola regex R yang paling umum beserta cakupan, nuansa, dan jebakannya
  • Kapan dan bagaimana menggunakan character escapes, kelas karakter, kuantifikator, jangkar, alternasi, dan pengelompokan dengan regex R
  • Berbagai contoh penerapan regex R dan fungsinya
  • Beberapa operasi lanjutan dengan ekspresi reguler R

Keterampilan dan konsep ini akan membantu Anda bekerja di R dan banyak bahasa pemrograman lain karena konsep ekspresi reguler sama untuk semua bahasa tersebut dan sintaks regex pun cukup serupa pada sebagian besar di antaranya.

Jika Anda tertarik untuk mengasah keterampilan R, pertimbangkan untuk mengeksplorasi kursus, jalur keterampilan, dan artikel DataCamp berikut:

Elena Kosourova

Penulis

Elena Kosourova

IBM Certified Data Scientist (2020), sebelumnya Ahli Geologi/Geomodeler Perminyakan untuk ladang minyak dan gas di seluruh dunia dengan pengalaman kerja internasional lebih dari 12 tahun. Mahir dalam Python, R, dan SQL. Bidang keahlian: pembersihan data, manipulasi data, visualisasi data, analisis data, pemodelan data, statistik, storytelling, machine learning. Berpengalaman luas dalam mengelola komunitas data science serta menulis/meninjau artikel dan tutorial tentang data science dan topik karier.

FAQs

Bagaimana cara memeriksa versi stringr yang saya miliki, dan bagaimana cara memperbaruinya?

Jalankan ini di konsol R Anda:

packageVersion('stringr')

Jika versinya di bawah 1.5.0, perbarui dengan:

install.packages('stringr')
 
Apakah str_view_all() akan berhenti berfungsi sepenuhnya, atau aman untuk terus menggunakannya untuk saat ini?

Masih berfungsi pada versi stringr saat ini dan akan terus berfungsi untuk sementara — deprecation di R tidak berarti penghapusan langsung. Namun, setiap pemanggilan akan menghasilkan pesan peringatan, yang akan cepat menjadi bising. Yang lebih penting, fungsi yang di-deprecate pada akhirnya akan dihapus pada rilis mayor di masa depan, jadi kode apa pun yang bergantung pada str_view_all() pada akhirnya akan rusak. Perbaikannya hanya butuh sekitar 30 detik, jadi sebaiknya dilakukan sekarang daripada nanti.

Mengapa saya perlu menggunakan backslash ganda (\\) di regex R ketika bahasa lain hanya menggunakan satu?

A: Karena R memproses string sebelum meneruskannya ke mesin regex. Satu \ dikonsumsi oleh parser string R, sehingga Anda memerlukan \\ untuk memastikan satu \ benar-benar mencapai mesin regex. Tulis \\d dan R akan mengonversinya menjadi \d untuk regex — tulis \d dan itu akan gagal sebelum regex sempat memprosesnya.

Apa perbedaan antara grep() dan grepl() di base R, dan mana yang sebaiknya saya gunakan?

grep() mengembalikan indeks elemen yang cocok; grepl() mengembalikan vektor TRUE/FALSE dengan panjang yang sama seperti input Anda. Gunakan grep() saat Anda memerlukan posisi, grepl() saat Anda ingin memfilter atau menguji. Dalam praktiknya, padanan stringr str_subset() dan str_detect() lebih bersih untuk sebagian besar kasus penggunaan.

Kapan saya harus menggunakan kelas karakter seperti [aeiou] dibandingkan alternasi seperti a|e|i|o|u?

Untuk satu karakter, selalu gunakan kelas karakter — lebih cepat dan lebih rapi. Gunakan alternasi dengan | saat salah satu opsi Anda memiliki lebih dari satu karakter, seperti cat|dog, karena pola tersebut tidak dapat dimasukkan ke dalam [].

Apa perbedaan kuantifikator *, +, dan ?

* = nol atau lebih (pola opsional dan bisa berulang). + = satu atau lebih (setidaknya satu diperlukan). ? = nol atau satu (opsional, tidak akan berulang). Trik mengingat: + menambah (mensyaratkan setidaknya satu), ? bertanya (mungkin ada, mungkin tidak), * berarti bebas.

Apa perbedaan antara sub() dan gsub(), dan apa padanan di stringr?

sub() hanya mengganti kecocokan pertama; gsub() mengganti semua kecocokan. Padanan stringr-nya adalah str_replace() dan str_replace_all(). Versi stringr lebih disarankan karena mengikuti urutan argumen tidyverse — data dulu, pola kedua, pengganti ketiga.

Kapan saya menggunakan regexpr() dibanding gregexpr() di base R?

regexpr() mencari posisi kecocokan pertama pada tiap string; gregexpr() mencari semua kecocokan. Kebanyakan pengguna R lebih memilih str_locate() dan str_locate_all() dari stringr — hasilnya dikembalikan sebagai data frame rapi dengan kolom start dan end alih-alih format integer bernama yang canggung di base R.

Apa arti ^ di dalam tanda kurung siku dibandingkan di luarnya?

Di luar [], ia menjangkar ke awal string: ^Hello mencocokkan string yang diawali "Hello". Di dalam [] sebagai karakter pertama, ia menegasi himpunan: [^aeiou] mencocokkan apa pun yang bukan vokal. Di posisi lain di dalam [], ia diperlakukan sebagai tanda sisipan literal.

Kapan saya menggunakan batas kata \b dibanding jangkar ^ dan $?

Gunakan \b saat Anda ingin mencocokkan sebuah kata utuh di mana saja dalam string, bukan hanya di awal atau akhir. Mencari cat juga akan mencocokkan "concatenated" — \bcat\b hanya mencocokkan kata yang berdiri sendiri. Ini sangat berguna dalam analisis teks ketika kecocokan parsial dapat mengacaukan hasil.

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026