Dalam kutipan dari bab baru dalam ebook Finding Stories in Spreadsheets, saya menjelaskan apa itu ekspresi reguler — dan bagaimana ekspresi reguler dapat digunakan untuk mengekstrak informasi dari spreadsheet. Versi ebook dari tutorial ini menyertakan kumpulan data dan latihan untuk menggunakan teknik ini Show
Kisah itu tidak biasa. Unit Data BBC telah diberi akses ke kumpulan data di lebih dari 200.000 karya seni di galeri di seluruh Inggris Raya. Pola apa yang bisa kita temukan dalam data yang memungkinkan kita bercerita tentang sifat lukisan bangsa? Beberapa data mudah untuk dikerjakan. kolom 'artis' relatif bersih, dan memungkinkan kami mengidentifikasi artis pria dan wanita yang paling umum. Ternyata yang terakhir - ahli botani Victoria Marianne North - relatif tidak dikenal. Nah, itulah salah satu cerita yang bisa kami ceritakan Tetapi bagian lain dari data itu lebih bermasalah. Kolom tanggal, misalnya, berisi data yang diformat tidak konsisten. dalam sebagian besar kasus tahun tertentu telah dimasukkan, tetapi dalam banyak kasus lain data berisi teks seperti "abad ke-18" atau "1900-1920" atau "1800-an" Kami juga memperhatikan bahwa raja banyak ditampilkan dalam seni – tetapi dapat dimengerti bahwa tidak ada kolom yang secara khusus didedikasikan untuk mengklasifikasikannya. Jika kami ingin mengidentifikasi monarki yang paling banyak dilukis, kami harus membuat data baru yang entah bagaimana mengekstraksi nama-nama itu dari judul lukisan. Masalah-masalah ini – mengekstraksi data dari data yang ada, data teks tertentu – adalah tujuan dari ekspresi reguler. Dalam bab ini saya akan menjelaskan apa itu ekspresi reguler, dan bagaimana menggunakannya dalam spreadsheet Apa itu ekspresi reguler?Ekspresi reguler adalah cara mendeskripsikan rangkaian karakter – bisa berupa kata atau frasa kunci, nama atau alamat, atau kode seperti nomor telepon – yang mengikuti pola tertentu Ini sering dilakukan untuk mengekstrak kumpulan karakter tersebut (misalnya menarik alamat email dari beberapa data) atau menggantinya (misalnya menghapus yang tidak Anda inginkan) Mereka sangat berguna dalam data tidak terstruktur seperti bidang teks bebas di mana semacam deskripsi telah dimasukkan (mis. g. “£300 dihabiskan untuk makanan” atau “Gol dicetak oleh Marie Smith dari jarak 30 yard”), dan juga untuk data tekstual yang teksnya telah diotomatisasi dan Anda ingin membaginya menjadi beberapa bagian. Ekspresi reguler adalah salah satu area di mana Google Sheets lebih disukai daripada menggunakan Excel. Meskipun secara teknis Anda dapat menggunakan ekspresi reguler di Excel, prosesnya rumit, melibatkan pengaktifan plugin khusus dan penggunaan skrip kode. Google Sheets, di sisi lain, memiliki fungsi bawaan Skenario saat Anda mungkin menggunakan ekspresi regulerPenggunaan umum ekspresi reguler termasuk
Sebelum kita masuk ke teknis ekspresi reguler berikut adalah beberapa contoh untuk menunjukkan bagaimana Anda dapat menggunakannya Pertama, bayangkan Anda memiliki kumpulan data tentang hoki dan Anda ingin bercerita tentang siapa yang menciptakan peluang menembak paling banyak untuk rekan satu timnya. Data berisi garis untuk setiap tembakan tetapi tidak ada kolom untuk orang yang melakukan operan yang mengarah ke tembakan. Sebaliknya itu memiliki kolom dengan deskripsi tentang apa yang terjadi Anda melihat kolom itu dan melihat bahwa deskripsi tersebut ditulis dengan cara yang relatif konsisten. Biasanya itu termasuk bagian yang mengatakan "Menerima izin dari Poppy Singh" atau "Mengikuti izin dari Eve Hill" Ekspresi reguler akan memungkinkan Anda mengatakan 'Dapatkan saya satu atau lebih kata yang mengikuti "lulus dari" dan mulai dengan huruf kapital diikuti dengan satu atau lebih huruf kecil' Dalam contoh ini, Anda mendeskripsikan kombinasi kata-kata tertentu ('beralih dari'), pola karakter (nama dimulai dengan huruf besar), dan posisi (setelah 'beralih dari') Ini contoh kedua. Anda memiliki kolom di beberapa data pengeluaran yang berisi alamat lengkap perusahaan penerima uang. Namun, Anda tidak menginginkan alamat lengkap – Anda menginginkan kode yang ada di akhir alamat (biasanya disebut kode pos atau kode ZIP – atau CAP di Italia, CEP di Brasil, PLZ di Jerman dan Austria, dan PIN di Ekspresi reguler Anda kali ini mungkin mengatakan 'Temukan saya teks apa pun yang memiliki sejumlah huruf kapital diikuti dengan angka, lalu spasi, lalu huruf kapital dan dua digit' (kode pos negara yang berbeda mengikuti pola yang berbeda sehingga Anda akan menggunakan Contoh terakhir. katakanlah dalam data yang sama ada kolom yang mengatakan berapa banyak uang yang dihabiskan, dan untuk apa - "£ 3000 dihabiskan untuk pakaian para aktor" Dalam hal ini Anda mungkin menggunakan satu ekspresi reguler untuk menemukan jumlah uang. itu mungkin mengatakan sesuatu seperti 'simbol mata uang diikuti oleh satu atau lebih digit'. Anda mungkin menemukan bahwa ada koma atau desimal dalam angka yang perlu Anda perhitungkan juga dalam deskripsi Anda ('simbol mata uang diikuti oleh satu atau lebih digit dan/atau koma atau titik'). Anda mungkin menggunakan variasi ekspresi reguler yang sama untuk mengambil barang yang sedang dibeli. 'teks apa pun yang muncul setelah simbol mata uang diikuti oleh satu atau lebih digit', misalnya Perlu diperhatikan bahwa terkadang hasil yang sama dapat dicapai tanpa menggunakan ekspresi reguler. Misalnya, alamat sering dipisahkan dengan koma sehingga menggunakan opsi 'Teks ke Kolom' di Excel (dipisahkan dengan koma) dapat membagi alamat sesuai kebutuhan Anda tanpa harus menggunakan ekspresi reguler Demikian juga jika yang Anda inginkan selalu di awal atau akhir sel maka Anda dapat menggunakan fungsi seperti Fungsi REGEX Google SpreadsheetUntuk benar-benar membentuk ekspresi reguler, Anda perlu menggunakan karakter tertentu dengan cara tertentu. Ini sering disebut regex (cara singkat untuk mengatakan 'ekspresi reguler') Google memiliki tiga fungsi yang menggunakan regex
Semua mengambil dua bahan utama
Fungsi Inilah satu formula untuk ditunjukkan
Ini terlihat di sel A2 untuk ekspresi "halo". Jika ditemukan di mana saja, saat dimasukkan akan mengembalikan Ini satu lagi, menggunakan fungsi regex yang berbeda
Dalam hal ini, rumus akan mengambil konten sel A2, dan mengganti setiap bagian yang cocok dengan ekspresi tersebut (“halo”) dengan beberapa teks berbeda (“selamat tinggal”). Jadi jika A2 berisi "Saya menyapa dia dan dia menyapa saya" sel tempat Anda mengetikkan rumus Anda akan (setelah Anda keluar) berisi "Saya mengucapkan selamat tinggal padanya dan dia mengucapkan selamat tinggal kepada saya" Sekarang untuk contoh menggunakan fungsi final
Jika A2 berisi karakter "halo" di mana saja, maka saat Anda memasukkan rumus ini, sel tempat Anda memasukkannya hanya akan mengatakan "halo" - dengan kata lain, itu akan mengekstraksi teks yang cocok dengan ekspresi. Jika A2 tidak mengandung "hello" maka kita akan mendapatkan error Ini mungkin kedengarannya tidak terlalu berguna – dan memang, tidak ada dalam contoh ini. Untuk benar-benar memanfaatkan fungsi ini dengan sebaik-baiknya, kita perlu membuat ekspresi yang kurang spesifik – dan di situlah kekuatan sebenarnya dari ekspresi reguler menjadi nyata Ekspresi reguler sebagai bahasa. regexDalam contoh di awal bab, saya menjelaskan beberapa cara di mana kita dapat mendeskripsikan pola karakter ('Temukan saya teks apa pun yang memiliki sejumlah huruf kapital diikuti dengan angka, lalu spasi, lalu huruf kapital dan . Untuk melakukan ini kita membutuhkan bahasa yang dapat menggambarkan pola-pola tersebut Regex adalah bahasa itu. Itu dapat menggambarkan setiap karakter secara harfiah, seperti pada ekspresi Kurung siku, misalnya, dapat digunakan untuk mengartikan 'salah satu dari karakter ini' Berikut adalah contoh ekspresi yang melakukan hal itu
Ini berarti 'huruf besar apa saja' Untuk mengatakan 'huruf kecil apa pun' Anda akan menggunakan Ini bisa dirangkai seperti itu
Ungkapan itu berarti 'angka diikuti oleh huruf besar diikuti oleh huruf besar lainnya' (salah satu cara untuk menggambarkan bagian dari kode pos) Tanda kurung kotak juga dapat digunakan untuk menunjukkan rentang karakter yang lebih spesifik, mis. g. Serangkaian huruf atau angka dalam tanda kurung siku dapat digabungkan dengan huruf atau angka normal (yang biasanya disebut 'harfiah') untuk mencocokkan variasi ejaan yang berbeda, seperti itu
Dalam hal ini ungkapan mengatakan 'huruf besar atau kecil H, diikuti oleh karakter e, l, l, o dalam urutan itu' Berikut contoh lain dengan angka
Ungkapan ini menetapkan bahwa dua angka pertama harus 0 dan 1, diikuti oleh dua angka dengan nilai berapa pun (ini dapat digunakan untuk mencocokkan kode area telepon Inggris Raya) Kami juga dapat mengadaptasi ekspresi sebelumnya untuk dibaca seperti ini
Itu berarti 'nol diikuti oleh 1 atau 2, diikuti oleh dua angka lagi' (kode area Inggris, misalnya, dapat dimulai dengan '01' atau '02'. ini sekarang menjelaskan itu) Tanda kurung siku hanyalah salah satu dari sejumlah karakteristik regex sebagai bahasa tertentu. Misalnya, alih-alih mengulangi Ada juga cara untuk menunjukkan posisi di regex (apakah teksnya di awal atau akhir), dan pencocokan negatif seperti 'karakter non-numerik' atau 'karakter non-spasi'. Tetapi sebelum kita membahas bagaimana melakukan hal-hal itu di regex, saya ingin mengerjakan contoh penggunaannya dalam praktik Mempraktikkan ini dengan tweet pemiluRegex paling baik dipahami dengan memainkannya sendiri. Ini adalah bahasa yang sering melibatkan coba-coba – mencoba ekspresi yang berbeda sampai Anda menemukan satu yang melakukan apa yang Anda butuhkan. Untuk alasan ini, Anda dapat menemukan sejumlah 'taman bermain regex' online yang memudahkan untuk mencoba berbagai ekspresi terhadap teks contoh dan melihat kinerjanya RegExr adalah salah satu taman bermain ini. di bagian atas halaman Anda dapat mengetik ekspresi, dan di kotak 'teks' di bawahnya (yang dapat Anda ubah menjadi teks Anda sendiri) itu akan menyorot bagian yang cocok dengan ekspresi. Di sebelah kiri Anda juga akan menemukan lembar contekan, referensi, dan sumber daya lainnya Saya akan mendemonstrasikan cara menggunakan regex dengan beberapa tweet dari akun Twitter @BBCelection. Ini adalah kumpulan data yang bagus untuk mendemonstrasikan regex karena tweet itu sendiri otomatis dan mengikuti pola yang dapat diprediksi sehingga kami dapat merekayasa balik secara efektif dengan regex Anda dapat mengunduh data dari tautan ini. Ini telah disederhanakan menjadi 5 kolom
Kami hanya akan menggunakan salah satu kolom tersebut. teks dari setiap tweet Pertama, kita perlu memutuskan pola teks apa yang ingin kita cocokkan. Untuk itu, kita perlu melihat tweet itu sendiri. Pola apa yang dapat kita identifikasi? Salah satu pola yang jelas adalah bahwa tweet terbaru tampaknya berfokus pada hasil pemilu nasional secara keseluruhan, dengan teks seperti ini. "HASIL. Hasil nasional untuk #BBCElection #GE2019. Hasil lengkap. https. //t. co/tFoMAGcFsq ; Mari kita putuskan bahwa kita tidak tertarik dengan tweet tentang “hasil nasional”. Kita dapat menggunakan ______________ untuk mendeteksi tweet yang cocok dengan pola, lalu memfilter kecocokan TRUE/FALSE tersebut Beri judul kolom F (di sel F1). “hasil_nasional”. Di bawahnya, di sel F2, ketik rumus ini
Regex yang sangat sederhana ini – pada dasarnya, kecocokan literal dari string karakter Coba ubah rumus di sel F4 (yang saat ini mengembalikan
Formula sekarang harus mengembalikan Penting untuk bertanya. apakah kasus surat itu penting? Jika tidak masalah apakah 'n' adalah huruf besar atau kecil, maka regex kita juga tidak boleh menentukannya Jadi mari kita hapus rumus yang kita ketikkan sebelumnya dan mulai lagi, mulai dari sel F2, dengan mengetikkan ini
…lalu salin seluruh kolom lagi Sekarang kami mencari kecocokan di mana 'n' di awal bisa berupa huruf besar atau kecil Itu akan memberi kita kolom yang penuh dengan nilai BENAR dan SALAH yang dapat kita gunakan untuk memfilter tweet yang berhubungan dengan hasil nasional (BENAR) Itu adalah aplikasi regex yang sangat mendasar. satu hal yang tidak dilakukannya, misalnya, adalah menentukan apakah ada karakter yang muncul sebelum atau sesudah string Sekarang mari beralih ke fungsi lain dan jelajahi beberapa regex yang lebih canggih Menggunakan REGEXEXTRACT_ dengan regex yang lebih canggihSekali lagi, sebaiknya mulai dengan sepotong teks yang mewakili jenis pola yang ingin Anda cocokkan. Katakanlah kita tertarik dengan tweet yang mengumumkan hasil di area tertentu. Tweet itu terlihat seperti ini
Dan ini
Pola apa yang bisa kita pilih yang umum untuk kedua contoh?
Ada banyak hal yang bisa dilakukan di sini. Secara khusus perlu ditekankan bahwa spasi sama pentingnya dengan huruf dan angka, dan tanda baca juga penting. Kami akan mencoba membuat kolom yang mengekstraksi partai yang diumumkan sebagai pemenang pemilu di daerah tersebut Beri kolom G nama "win_party" Tidak ada gunanya menguji formula kami di sel G2, G3 atau G4 karena teks tweet di sel yang sesuai di kolom C tidak berhubungan dengan pihak yang menang Jadi lewati ke sel G5, dan ketik rumus ini
Regex di sini menentukan tiga karakter huruf besar. Atau, lebih khusus lagi, dikatakan “karakter huruf besar apa saja. tiga di antaranya" Pengubah di regexAngka dalam kurung kurawal – Pengubah adalah karakter khusus dalam regex yang mengubah apa pun yang ada sebelumnya. Contohnya termasuk "satu atau lebih [apa yang dijelaskan]" dan "tiga [apa yang dijelaskan]" Dalam hal ini pengubah Berikut adalah beberapa pengubah lain yang dapat digunakan di regex
Tentu saja Anda juga bisa menulis regex ini seperti itu
Dan itu akan baik-baik saja. Pengubah hanya ada sebagai cara lain untuk mendeskripsikannya – serta cara untuk mendeskripsikan potensi variasi panjang secara lebih fleksibel, yang akan kita perlukan nanti Entah regex berfungsi untuk sel uji kami - mengekstraksi "CON" Salin formula itu ke bawah, dan Anda akan menemukan bahwa itu mengekstrak "RES" dari tweet yang menjadi "RESULT. ” Bagaimana kita bisa menghentikan hal itu terjadi? Cara yang sangat sederhana adalah menambahkan spasi setelah "CON" tetapi tidak setelah "RES". Rumus di baris 6 dengan spasi di dalamnya akan terlihat seperti ini
Saat rumus ini digunakan sebagai gantinya, Anda akan melihat Ada satu pengecualian yang aneh. dalam satu tweet itu mengekstrak "TWL". Ini tweetnya HASIL. Hasil nasional untuk #BBCElection #GE2019. Hasil lengkap. https. //t. co/qE0yxz5TWL ; Menemukan kecocokan itu sulit. itu sebenarnya dari salah satu URL. kumpulan huruf dan angka acak di tautan pertama diakhiri dengan TWL – lalu ada spasi Bagaimana kita bisa mengecualikan kecocokan acak seperti ini? . Tapi kita bisa memperluas regex kita lagi Kali ini, kita dapat melihat ke kiri string teks yang ingin kita cocokkan. sementara "CON" diikuti oleh spasi di sebelah kanan, itu juga didahului oleh spasi di sebelah kiri Beberapa regex yang cocok akan terlihat seperti ini
Menggunakan spasi di regex kami menciptakan masalah kecil. kami hanya menginginkan simbol pesta tiga huruf, bukan ruang di sekitarnya Sekali lagi, kita dapat memutuskan untuk merapikannya setelah itu – atau kita dapat membungkus seluruh rumus kita dalam fungsi Tapi kami akan mengesampingkannya untuk saat ini. Sebagai gantinya, mari kita ajukan pertanyaan. apakah semua pihak diwakili oleh kode tiga huruf? . Beberapa pihak sebenarnya adalah dua kode karakter. Demokrat Liberal adalah LD dan Sinn Fein adalah SF Di sinilah pengubah kami menjadi sangat berguna Kita dapat menyesuaikan ekspresi sehingga menangkap serangkaian dua atau tiga huruf besar, seperti itu
(Perhatikan bahwa ini adalah rumus di baris 5, lihat C5 di baris itu) Saat disalin, itu tidak hanya mengekstrak teks "CON" di tweet yang memuatnya, tetapi juga, di baris 15, "SF" untuk pesta Sinn Fein Menggunakan simbol pipa untuk pertandingan 'ATAU'Sekarang mari kita coba ekstrak apakah tweet mengatakan bahwa sebuah partai 'memperoleh' kursi (mengambilnya dari partai lain yang menang dalam pemilu lalu), atau mempertahankannya Beri judul kolom H 'hold_or_gain' Pola teks yang ingin kita cocokkan adalah “HOLD” atau “GAIN”. Ini memungkinkan kita untuk menggunakan karakter khusus lain di regex yang berarti 'atau'. simbol pipa, Sekali lagi teks di baris 2 tidak berisi apa yang ingin kita cocokkan, jadi lebih cepat untuk menguji regex kita di baris 3. Kemudian, di sel H3, ketik rumus ini
Regex disini artinya ‘cari urutan karakter “HOLD” atau urutan “GAIN”‘. Lebih banyak simbol pipa dapat ditambahkan untuk menambah jumlah opsi. Misalnya kita bisa mengembangkannya untuk mencari 'MENANG' atau 'KALAH' juga, seperti itu. Setelah diterapkan dan disalin, rumus harus mengekstrak salah satu kata tersebut jika ada di tweet Jika kedua kata ada dalam teks, itu akan mengambil kecocokan pertama dengan salah satu dari itu Menggunakan pengubah asterisk, plus, dan tanda tanyaKami telah menggunakan pengubah kurung kurawal untuk menentukan sejumlah karakter. Sekarang mari kita gunakan pengubah lainnya. asterisk, plus dan tanda tanya Katakanlah kita ingin mengekstrak nama tempat yang terkait dengan hasilnya. Ini muncul di awal tweet, sebelum titik dua Nama dimulai dengan huruf kapital, lalu beberapa huruf kecil. Kami tahu hanya ada satu huruf kapital, tetapi kami tidak tahu berapa banyak huruf kecil yang mungkin ada dalam nama tertentu Namun, kurangnya kepastian itu dapat ditangani oleh salah satu pengubah. Jika kita mengetahui setidaknya ada satu karakter tertentu, maka kita dapat menggunakan tanda plus untuk mengartikan 'satu atau lebih' Inilah salah satu cara menggunakannya untuk tweet di baris 5
Ini berarti 'huruf besar diikuti oleh satu atau lebih huruf kecil' Di kolom kosong berikutnya, saya, coba ini sendiri. panggil kolom 'konstituensi' (itulah yang disebut area ini) dan ketik Saat Anda menyalinnya ke beberapa sel, ini mengambil kata pertama di setiap tweet yang dimulai dengan huruf besar diikuti oleh setidaknya satu huruf kecil Saat ini hanya menangkap kata pertama – jadi hanya sebagian dari nama tempat dengan banyak kata seperti 'St Ives'. Dan itu mengambil beberapa pertandingan yang tidak kita inginkan juga, seperti 'Ini' dan 'Nasional' Kita dapat menyelesaikan masalah tersebut sambil berjalan, tetapi untuk saat ini kita hanya ingin memahami cara kerja pengubah ini dalam praktiknya Mari gunakan dua pengubah lainnya untuk menunjukkan cara kerjanya Coba ubah regex Anda sehingga tanda tambah diganti dengan tanda bintang. Ini berarti 'tidak ada atau lebih dari' Rumus di sel I2 akan terlihat seperti ini
Sekarang kami meminta 'huruf kapital diikuti dengan tidak ada atau lebih huruf kecil' Saat disalin, Anda akan melihat bahwa ini masih mengambil bagian pertama dari nama tempat seperti 'St' dan 'Arundel' tetapi hanya mengambil satu huruf di sel lain Itu karena di sel-sel itu, kecocokan pertama untuk pola yang dijelaskan adalah kata pertama dalam tweet. 'KOREKSI' atau 'HASIL'. Kedua kata itu cocok dengan deskripsi 'huruf kapital diikuti dengan tidak ada atau lebih huruf kecil' - atau lebih tepatnya, 'C' dan 'R' dalam kata-kata itu cocok dengan deskripsi itu. mereka masing-masing huruf kapital diikuti dengan huruf kecil (ingat bisa tidak ada atau lebih dengan pengubah ini) Pengubah ini tidak membantu kita dalam ungkapan ini – tetapi nanti akan sangat berguna Sekarang mari kita coba tanda tanya
Tanda tanya berarti 'tidak ada atau salah satu dari' karakter yang ditentukan. Jadi ungkapan ini sepenuhnya berarti. 'huruf besar diikuti oleh tidak ada atau satu huruf kecil' Seperti halnya tanda bintang, 'C' dan 'R' pada kata 'KOREKSI' atau 'HASIL' dicocokkan lagi, karena masing-masing adalah huruf kapital tidak diikuti huruf kecil Tetapi dalam kata-kata seperti 'Ini' dan 'Arundel' regex hanya cocok dengan 'Th' atau 'Ar'. kapital diikuti dengan satu huruf kecil Cocok dengan karakter apa pun. wildcardSejauh ini, hasil terbaik yang kami dapatkan adalah mencocokkan kata pertama dari nama apa pun – tetapi kami ingin mengembangkannya untuk mendapatkan nama yang memiliki lebih dari satu kata. "St Ives", misalnya Kita dapat mengubah regex kita agar sesuai dengan nama tersebut – misalnya dengan menduplikasi bagian pertama sehingga terlihat seperti ini. Itu akan cocok dengan "St Ives" tetapi tidak akan cocok dengan nama tempat satu kata, atau yang memiliki lebih dari dua kata, seperti "Arundel & South Downs" (omong-omong, Jadi kita perlu pendekatan yang berbeda Salah satu pendekatan yang bermanfaat adalah dengan melihat karakter apa saja yang muncul setelah kata yang kita inginkan Dalam hal ini, nama tempat selalu diikuti titik dua. Jadi kami cukup meminta 'satu atau lebih karakter apa pun yang diikuti oleh titik dua' Ada karakter khusus di regex yang berarti 'karakter apa saja'. itu adalah periode, atau titik. Ini sering disebut sebagai wildcard, dengan cara yang sama Joker dalam satu pak kartu bisa menjadi 'wildcard' dan mewakili kartu apa pun di geladak. Berikut adalah contoh ekspresi yang berarti 'satu atau lebih karakter apa pun yang diikuti oleh titik dua'
Hanya ada tiga karakter di sini. wildcard yang berarti 'karakter apa saja', kemudian pengubah untuk menentukan bahwa kita menginginkan 'satu atau lebih' dari itu, dan kemudian karakter literal - titik dua - yang berarti 'titik dua' Mari kita coba di baris 5, yang merupakan tweet pertama yang menyebutkan hasil di tempat tertentu, dengan mengubah rumusnya menjadi ini
Itu berfungsi dalam mengekstraksi kedua kata "St Ives" dan usus besar yang mengikutinya (yang bisa kita bersihkan nanti) Saat disalin ke bawah kolom, itu juga cocok dengan “Arundel & South Downs. ” – tetapi di beberapa sel cocok dengan “RESULT. ” juga, yang tidak kita inginkan Sekarang kita dapat mulai lebih spesifik dalam ekspresi kita untuk mencoba mengecualikannya Perbedaan yang jelas antara “RESULT. ” dan “St Ives. ”adalah bahwa yang pertama semuanya huruf besar sedangkan yang terakhir menggunakan setidaknya satu huruf kecil setelah huruf kapital awal Kita dapat menggunakan kembali regex dari sebelumnya untuk menentukan ini, dan memasukkannya ke dalam ekspresi baru kita
Sekarang kita katakan. 'Huruf besar diikuti oleh huruf kecil diikuti oleh satu atau lebih karakter apa pun, diikuti oleh titik dua' (catatan. ini berarti bahwa nama apa pun harus memiliki panjang setidaknya tiga karakter, termasuk spasi, sebelum titik dua, jadi "St" tidak akan cocok. Jika kami berpikir bahwa mungkin ada nama tempat kata tunggal dua karakter dalam data kami, kami dapat mengubah ekspresi untuk menggunakan Saat kami mengubah rumus kami untuk menggunakan ekspresi itu, dan menyalinnya ke bawah kolom, itu sekarang berhenti cocok dengan "RESULT" Namun, sekarang cocok dengan bagian lain dari tweet yang tidak kita inginkan. bagian yang mengatakan “Hasil lengkap. ” Kami dapat, sekali lagi, menyaring ini sebagai bagian dari pembersihan. Tapi masalah ini memberi kita alasan yang nyaman untuk menjelajahi bagian lain dari regex… Menentukan posisi (mulai atau akhir)Jika kita tidak dapat membedakan antara “St Ives. ” dan “Hasil lengkap. ” berdasarkan karakter mereka, kita dapat membedakan mereka berdasarkan posisinya. “St Ives” dan nama lainnya selalu muncul di awal tweet Ada dua karakter khusus yang dapat kita gunakan di regex untuk menentukan bahwa kita sedang mencari pola di posisi tertentu
Karakter khusus ini harus digunakan dalam posisi tertentu. Tanda sisipan harus digunakan di awal ekspresi; Dengan ekspresi kita, kita hanya perlu menambahkan simbol tanda sisipan ke awal ekspresi kita untuk menentukan bahwa kita hanya ingin mengembalikan kecocokan di mana pola itu muncul di awal tweet
Saat kami menyesuaikan rumus kami untuk menyertakan simbol tanda sisipan, hasilnya sekarang akan berhenti mengambil “Hasil lengkap. ” karena rangkaian karakter tersebut tidak muncul di awal setiap tweet (sebaliknya, kecocokan tersebut sekarang akan berubah menjadi kesalahan 'Melarikan diri' karakter khususAspek terakhir dari regex untuk didemonstrasikan adalah apa yang harus dilakukan ketika Anda ingin mencocokkan karakter yang digunakan sebagai karakter khusus di regex. Dengan kata lain, bagaimana jika Anda ingin mencocokkan tanda dolar, atau titik, atau tanda tanya yang sebenarnya? Situs web Regular-Expressions. info memiliki halaman bermanfaat yang menjelaskan perbedaan antara karakter literal dan karakter khusus. “Ada 12 karakter dengan arti khusus,” katanya
(Karakter yang tidak ada dalam daftar itu adalah karakter literal. yaitu, mereka secara harfiah merujuk pada diri mereka sendiri. a Jika kita ingin mencari pola karakter yang menyertakan satu atau lebih karakter khusus, maka kita memerlukan cara untuk menentukan bahwa kita tidak ingin mereka diperlakukan sebagai karakter khusus. Ini disebut 'melarikan diri' karakter khusus Di regex Anda keluar dari karakter khusus dengan meletakkan garis miring terbalik di depannya. Jadi, misalnya, jika kita ingin mencocokkan tanda bintang, kita akan menulis Kebetulan, satu-satunya karakter khusus dalam tweet yang kami gunakan adalah titik ( Dalam kasus tweet, periode sebenarnya adalah karakter yang cukup berguna untuk difokuskan. itu memisahkan bagian pertama dari tweet yang berisi hasil, dan bagian kedua dari tweet yang berisi “Hasil lengkap. " tautan Jika kita ingin menggunakan regex untuk mengambil bagian pertama tweet dari setiap sel, maka kita dapat menggunakan ekspresi ini
Ungkapan ini menggunakan karakter periode baik sebagai karakter khusus (artinya 'karakter apa saja') dan sebagai karakter literal (artinya 'titik') Ada banyak hal yang terjadi di sini hanya dalam empat karakter. Dimulai dengan periode yang berarti 'karakter apa pun', diikuti oleh tanda bintang - pengubah - yang berarti 'tidak ada atau lebih dari'. Berikutnya adalah garis miring terbalik yang berarti 'melarikan diri dari karakter yang mengikuti', dan periode yang kali ini - karena garis miring terbalik itu - secara harfiah berarti 'titik' Nyatanya, lebih baik melihatnya sebagai dua pasang dua karakter daripada empat karakter terpisah. Titik dan asterisk ('tidak ada atau lebih karakter apa pun'); Secara bersama-sama, kedua pasang karakter tersebut sama dengan ungkapan 'tidak ada atau lebih dari karakter apa pun, diikuti dengan tanda titik' Menunjukkan simbol, spasi, pengembalian baris, dan tipe karakter lainnyaSelain karakter khusus 'escape', backslash juga dapat digunakan dengan huruf tertentu untuk menunjukkan jenis karakter lainnya. Berikut beberapa contohnya
Beberapa di antaranya dapat digunakan sebagai alternatif dari yang sudah digunakan. misalnya Anda akan melihat bahwa semua contoh ini juga mengikuti pola tertentu. mencari kecocokan positif melibatkan penggunaan huruf kecil yang relevan (mis. g. Pencocokan negatif terhadap karakter tertentu juga dapat ditentukan dengan menggunakan simbol tanda sisipan Jadi, misalnya, sama seperti Anda mungkin menggunakan
.. untuk menunjukkan 'huruf apa pun yang bukan karakter huruf besar' Sama halnya, Bagaimana regex digunakan dalam cerita seniSaya membuka bab ini dengan cerita tentang data lebih dari 200.000 karya seni di galeri di seluruh Inggris Raya, dan bagaimana ekspresi reguler diperlukan untuk memilih pola dalam data tekstual Dalam cerita khusus itu saya menggunakan regex bukan di Google Sheets, tetapi dengan bahasa pemrograman R, dan ini bisa sangat berguna jika Anda memutuskan untuk menggunakan pengkodean dalam pekerjaan Anda (Anda akan menemukan bab tentang regex dalam pengkodean Python di buku saya Scraping Berikut adalah beberapa cara regex digunakan Pertama, itu digunakan sebagai bagian dari proses pembersihan tanggal
Itu juga digunakan untuk mengidentifikasi variasi nama kerajaan
Perhatikan bahwa beberapa ekspresi ini cocok dengan karya seni yang terkait dengan barang-barang yang diberi nama bangsawan, seperti mesin uap 'Prince of Wales', atau resimen tentara 'King's Dragoons'. Ini dapat diidentifikasi dan dibersihkan pada tahap selanjutnya dari analisis data Dan akhirnya, itu digunakan untuk mengidentifikasi sekolah seni, dengan regex Anda dapat menemukan semua kode dan spreadsheet yang digunakan dalam proyek tersebut di repo GitHub untuk ceritanya di https. //github. com/BBC-Data-Unit/art-uk Anda dapat mengunduh Lembar Google yang memiliki tweet pemilihan dan lembar lebih lanjut yang menunjukkan contoh regex di sini Apa itu regex dan mengapa kita menggunakannya?Ekspresi reguler (disebut juga regex atau regexp) adalah cara untuk mendeskripsikan pola . Ini digunakan untuk menemukan atau memvalidasi string atau pola teks tertentu dalam kalimat, dokumen, atau input karakter lainnya. Ekspresi reguler menggunakan karakter dasar dan khusus.
Apa yang dilakukan fungsi regex?Fungsi ekspresi reguler mengidentifikasi pola karakter yang tepat dan berguna untuk validasi data , misalnya, pemeriksaan jenis, pemeriksaan rentang, dan pemeriksaan .
Apa itu regex dan bagaimana cara kerjanya?Ekspresi reguler (regex) menentukan pola pencarian yang digunakan fungsi tertentu untuk mencari string . Ekspresi reguler menyediakan cara yang fleksibel untuk mencocokkan semua karakter atau bagian teks dalam string. Fungsi yang menerima ekspresi reguler menggunakan sintaksis yang didasarkan pada Ekspresi Reguler Java.
Apa itu regex match atau Google Sheets?REGEXMATCH adalah fungsi di Google Spreadsheet yang memungkinkan Anda mencocokkan teks dengan ekspresi reguler. Sintaks fungsinya adalah sebagai berikut. REGEXMATCH(teks, regex) Argumen pertama, teks, adalah teks yang ingin Anda cocokkan dengan ekspresi reguler. |