Penukaran huruf, perbandingan, pengiraan, pelepasan aksara dan pembersihan ruang kosong untuk teks.
Senarai teks tiba dalam bentuk buruk. Lajur e-mel yang ditampal daripada hamparan mempunyai ruang belakang pada setiap baris. Petikan log mempunyai baris pendua. Senarai yang disalin daripada PDF mempunyai patah baris keras di tengah-tengah ayat. Tiada satu pun daripada ini adalah masalah yang sukar, tetapi melakukannya dengan tangan merentasi empat ratus baris adalah menyedihkan, dan mencapai bahasa skrip untuk pembersihan sekali sahaja adalah lebih perlahan daripada yang didengari.
Semuanya di sini beroperasi pada teks dalam kotak di atas. Setiap butang adalah satu transformasi, digunakan pada keseluruhan teks, dan setiap satu daripadanya boleh dibuat asal. Bekerja dalam langkah kecil dan semak kiraan semasa anda pergi.
Pesanan lebih penting daripada jangkaan orang. Pemangkasan sebelum nyah pendua hampir selalu betul: dua baris yang berbeza sahaja dengan ruang mengekor bukan pendua sehingga anda memangkasnya, jadi nyah pendua terlebih dahulu meninggalkan kedua-duanya di tempatnya.
Begitu juga, alih keluar garisan kosong sebelum mengisih jika anda mahukan hasil yang padat, kerana garisan kosong mengisih ke satu hujung dan meninggalkan jurang yang anda perlu alih keluar juga.
Panel statistik mengemas kini semasa anda menaip. Kebanyakannya adalah penjelasan sendiri, tetapi kiraan aksara patut diberi perhatian, kerana ia adalah bilangan yang paling banyak alat tersilap.
Komputer menyimpan teks sebagai urutan unit kod, dan satu aksara yang boleh dilihat boleh menduduki beberapa daripadanya. Emoji 👩💻 ialah satu perkara yang boleh anda lihat, tetapi ia dibina daripada emoji wanita, penyambung yang tidak kelihatan dan emoji komputer riba — lima unit kod kesemuanya. Kaunter naif melaporkan 5. Alat ini mengira kelompok grafem, yang merupakan nama teknikal untuk "apa yang seseorang akan panggil satu aksara", jadi ia melaporkan 1.
Logik yang sama digunakan untuk aksara beraksen yang ditulis dengan gabungan tanda, dan untuk membenderakan emoji. Jika anda mengira had yang dikuatkuasakan oleh sistem yang berbeza — lajur pangkalan data, gerbang SMS, platform sosial — sedar bahawa sistem lain mungkin mengira secara berbeza.
Butang pengekstrakan menarik e-mel, URL atau nombor daripada teks tidak berstruktur dan memberikannya kepada anda sebagai senarai yang bersih, dinyahduakan dan mengikut susunan penampilan.
URL jalur pengekstrakan mengekori tanda baca ayat, jadi "lawati https://example.com." menghasilkan URL tanpa noktah dan ia berhenti pada kurungan penutup supaya kurungan dalam URL keluar bersih.
Pemadanan e-mel sengaja pragmatik dan bukannya menyeluruh. Spesifikasi lengkap untuk alamat e-mel yang sah membenarkan pembinaan yang pada dasarnya tidak digunakan oleh sesiapa pun, dan padanan kesemuanya menghasilkan hasil yang lebih buruk pada teks sebenar berbanding corak yang lebih ketat.
Menukar "hello world" kepada camelCase adalah mudah. Menukar parseHTTPResponse2Json adalah apabila alat tidak bersetuju, kerana sempadan tersirat dan bukannya ditanda.
Alat ini berpecah pada tiga isyarat: sebarang larian bukan huruf, aksara bukan digit (ruang, sempang, garis bawah, tanda baca); huruf kecil atau digit diikuti dengan huruf besar; dan larian huruf besar diikuti dengan pasangan huruf besar kemudian huruf kecil. Peraturan terakhir itulah yang memisahkan "HTTP" dengan betul daripada "Respons" dalam parseHTTPResponse, dan bukannya menghasilkan p-a-r-s-e-h-t-t-p-response atau menganggap keseluruhan akronim sebagai satu perkataan yang dilekatkan pada perkataan seterusnya.
Hasilnya ialah parseHTTPResponse menjadi parse_http_response dalam kes ular dan parse-http-response dalam kes kebab, yang merupakan jangkaan kebanyakan panduan gaya.
Huruf tajuk menggunakan huruf besar pada huruf pertama setiap perkataan dan huruf kecil yang lain, jadi "hello WORLD" menjadi "Hello World". Ia tidak tahu tentang peraturan panduan gaya yang menyimpan perkataan pendek seperti "of" dan "the" huruf kecil, kerana peraturan tersebut berbeza-beza mengikut penerbitan dan menggunakan satu secara senyap mungkin meneka.
Huruf huruf kecil ayat semuanya dan kemudian menggunakan huruf besar pada huruf pertama setiap ayat, mengesan ayat berakhir dengan noktah, tanda soal dan tanda seru, termasuk CJK yang setara dengan lebar penuhnya. Ia adalah pilihan yang tepat untuk teks yang tiba di ALL CAPS.
Transformasi slug menghasilkan pengecam selamat URL: huruf kecil, aksen dilipat ke huruf asasnya dan setiap larian aksara bukan abjad angka digantikan dengan satu tanda sempang.
Lipatan aksen dilakukan dengan mengurai aksara dan mengeluarkan tanda gabungan, jadi "Café Crème" menjadi "cafe-creme" dan bukannya "caf-cr-me". Menggugurkan huruf beraksen sepenuhnya adalah pepijat biasa dalam penjana slug dan ia merosakkan nama.
Pemisah di hadapan dan di belakang dilucutkan, dan emoji serta simbol lain dialih keluar, kerana ia tidak mempunyai perwakilan URL yang berguna.
Cari-dan-ganti mempunyai dua mod. Mod literal — lalai — terlepas dari setiap aksara khas, jadi mencari "a.b" menemui "a.b" dan bukan "axb". Mod regex melepasi corak anda melalui apa adanya.
Setiap corak yang anda taip disusun di dalam pengawal. Jika ia tidak sah, anda mendapat mesej yang menerangkan masalah dan teks anda tidak disentuh. Ini lebih penting daripada yang didengari: menaip ungkapan biasa ialah proses tambahan dan satu-satunya "(" ialah keadaan perantaraan yang sangat normal dalam perjalanan ke corak berfungsi. Alat yang menimbulkan ralat yang tidak terurus pada masa itu — atau lebih teruk lagi, mengosongkan kotak — tidak boleh digunakan.
Dalam mod regex, penggantian menyokong kumpulan tangkapan dengan $1, $2 dan seterusnya. Memformat semula tarikh ialah contoh kanonik: find (\d{4})-(\d{2})-(\d{2}) dan gantikan dengan $3/$2/$1 untuk berpaling 2024-01-02 ke dalam 02/01/2024.
Pilihan "Seluruh perkataan" membungkus carian anda dalam sempadan perkataan, jadi mencari "kucing" sepadan dengan perkataan kucing tetapi bukan "kucing" di dalam "menggabungkan".
Ia mengarang dengan kedua-dua mod. Dalam mod literal, teks anda dilepaskan dahulu dan kemudian dibatasi; dalam mod regex keseluruhan corak anda dibatasi sebagai satu kumpulan, jadi selang-seli seperti cat|dog berkelakuan seperti yang anda jangkakan dan bukannya mengikat sempadan kepada cawangan pertama sahaja.