Menggunakan Regular Expression untuk Membersihkan String
Tutorial ini mengambil materi kursus dari kursus Cleaning Data in Python milik DataCamp dan memungkinkan Anda membersihkan string menggunakan regular expression.
Jika Anda ingin mengikuti kursus gratis Intro to R kami, berikut tautannya.
Mengekstrak Nilai Numerik dari String
Mengekstrak angka dari string adalah tugas umum, khususnya saat bekerja dengan data tidak terstruktur atau file log.
Misalkan Anda memiliki string berikut: 'the recipe calls for 6 strawberries and 2 bananas'.
Akan berguna untuk mengekstrak 6 dan 2 dari string ini untuk disimpan dan digunakan nanti saat membandingkan rasio stroberi terhadap pisang.
Saat menggunakan regular expression untuk mengekstrak beberapa angka (atau lebih tepatnya beberapa kecocokan pola), Anda dapat menggunakan fungsi re.findall(). Dan tidak membahas ini dalam video, tetapi penggunaannya cukup mudah: Anda memberikan sebuah pola dan sebuah string ke re.findall(), dan fungsi tersebut akan mengembalikan daftar kecocokan.
Instruksi
Impor re.
Tulis sebuah pola yang akan menemukan semua angka dalam string berikut: 'the recipe calls for 10 strawberries and 1 banana'. Untuk melakukannya:
Gunakan fungsi re.findall() dan berikan dua argumen: polanya, diikuti oleh stringnya.
\d adalah pola yang diperlukan untuk menemukan digit. Ikuti dengan + agar elemen sebelumnya dicocokkan satu kali atau lebih. Ini memastikan 10 dipandang sebagai satu angka dan bukan 1 dan 0.
Cetak hasil kecocokan untuk memastikan regular expression Anda menemukan nilai 10 dan 1.
# Import the regular expression module
____
# Find the numeric values: matches
matches = re.findall('____', '____')
# Print the matches
print(____)
# Import the regular expression module
import re
# Find the numeric values: matches
matches = re.findall('\d+', 'the recipe calls for 10 strawberries and 1 banana')
# Print the matches
print(matches)
Ex().test_import('re')
Ex().test_correct(test_object('matches'), test_function('re.findall'))
Ex().test_function('print')
success_msg('Excellent work - your regular expression successfully extracted the numeric values 10 and 1 from the string!')
Gunakan perintah import x untuk mengimpor modul x.
Argumen pertama untuk re.findall() harus \d+, dan argumen kedua harus string: 'the recipe calls for 10 strawberries and 1 banana'.
Gunakan fungsi print() yang disediakan untuk mencetak matches.
Jika itu sudah jelas, lanjutkan ke latihan berikutnya! Jika belum, berikut video ringkasannya.
Video Ringkasan tentang Menggunakan Regular Expression untuk Membersihkan String di Python
Pencocokan Pola
Dalam latihan ini, Anda akan terus melatih keterampilan regular expression. Untuk setiap string yang disediakan, tugas Anda adalah menuliskan pola yang sesuai untuk mencocokkannya.
Instruksi
Tulis pola untuk mencocokkan:
Nomor telepon dengan format xxx-xxx-xxxx. Anda sudah melakukannya di latihan sebelumnya.
Sebuah string dengan format: Tanda dolar, sejumlah digit sebarang, titik desimal, 2 digit.
Gunakan \$ untuk mencocokkan tanda dolar, \d* untuk mencocokkan sejumlah digit sebarang, \. untuk mencocokkan titik desimal, dan \d{x} untuk mencocokkan x jumlah digit.
Sebuah huruf kapital, diikuti oleh sejumlah karakter alfanumerik sebarang.
Gunakan [A-Z] untuk mencocokkan huruf kapital mana pun diikuti dengan \w* untuk mencocokkan sejumlah karakter alfanumerik sebarang.
import re
# Write the first pattern
pattern1 = bool(re.match(pattern='____', string='123-456-7890'))
print(pattern1)
# Write the second pattern
pattern2 = bool(re.match(pattern='____', string='$123.45'))
print(pattern2)
# Write the third pattern
pattern3 = bool(re.match(pattern='____', string='Australia'))
print(pattern3)
# Write the first pattern
pattern1 = bool(re.match(pattern='\d{3}-\d{3}-\d{4}', string='123-456-7890'))
print(pattern1)
# Write the second pattern
pattern2 = bool(re.match(pattern='\$\d*\.\d{2}', string='$123.45'))
print(pattern2)
# Write the third pattern
pattern3 = bool(re.match(pattern='[A-Z]\w*', string='Australia'))
print(pattern3)
Ex().test_correct(test_object('pattern1'), test_function('re.match', index=1))
Ex().test_function('print', index=1)
Ex().test_correct(test_object('pattern2'), test_function('re.match', index=2))
Ex().test_function('print', index=2)
Ex().test_correct(test_object('pattern3'), test_function('re.match', index=3))
Ex().test_function('print', index=3)
success_msg("Great work! You're mastering the fundamentals of writing regular expressions!")
Ada tiga komponen untuk pola pertama yang perlu dicocokkan oleh regular expression Anda: xxx, xxx, dan xxxx. Dua yang pertama dicocokkan oleh \d{3}, sementara yang terakhir dicocokkan oleh \d{4}. Masing-masing komponen ini harus dipisahkan oleh -.
Jika Anda ingin belajar lebih banyak dari kursus ini, berikut tautannya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.