Teks & alat sehari-hari · Perangkat Teks
Grup tangkapan regex dalam temukan dan ganti: susun ulang tanggal dengan $1, $2, $3
· Cara kerjanya
ekspresi reguler temukan-dan-ganti tanggal
Menunjukkan bagaimana tanda kurung menangkap bagian dari kecocokan dan bagaimana $1, $2 dan $3 menggunakannya kembali sebagai pengganti, menggunakan penulisan ulang tanggal ISO-ke-hari-bulan-tahun klasik dan beberapa penyusunan ulang lainnya.
Empat ratus tanggal dalam urutan yang salah — mengapa pengeditan tangan 2024-01-02 menjadi 02/01/2024 adalah pekerjaan yang sulit dilakukan oleh kelompok penangkap
Ekspor spreadsheet dapat meninggalkan empat ratus tanggal dalam urutan ISO gaya tahun-bulan-hari ketika lembar kerja Inggris mengharapkan hari/month/year. Mengedit `2024-01-02` menjadi `02/01/2024` dengan tangan adalah hal yang lambat, namun risiko yang lebih besar adalah inkonsistensi: satu baris yang dilewati atau digit yang dialihkan dapat bertahan hingga laporan didistribusikan.
Temukan dan ganti dapat memperlakukan setiap tanggal sebagai susunan bagian yang sama, bukan sebagai empat ratus string yang tidak berhubungan. Ekspresi reguler mengidentifikasi tahun, bulan, dan hari, sementara penggantinya menulis kembali bagian-bagian yang diambil dalam urutan lain. Digit asli digunakan kembali, sehingga operasi mengubah struktur daripada mengetik ulang nilai.
Tanda kurung apa yang ada — bagaimana setiap kelompok mendapatkan nomor dari kiri ke kanan, dan apa yang \d{4} dan \d{2} cocok
Tanda kurung membuat grup tangkapan. Di `(\d{4})-(\d{2})-(\d{2})`, kelompok pertama menangkap empat digit, kelompok kedua menangkap dua, dan kelompok ketiga menangkap dua. `\d` berarti digit dalam pola JavaScript ini, sedangkan `{4}` dan `{2}` menentukan jumlah pasti pengulangan yang diperlukan dalam setiap grup.
Grup menerima nomor dari setiap tanda kurung buka saat mesin membaca dari kiri ke kanan. Untuk `2024-01-02`, grup 1 adalah `2024`, grup 2 adalah `01`, dan grup 3 adalah `02`; tanda hubung cocok dengan pemisah tetapi berada di luar tanda kurung, sehingga tidak dipertahankan sebagai nilai yang diambil.
Menggunakan $1, $2 dan $3 sebagai pengganti — membangun kembali kecocokan dalam urutan baru dengan pemisah baru
Pengganti `$3/$2/$1` meminta JavaScript untuk menyisipkan tangkapan ketiga, garis miring, tangkapan kedua, garis miring lagi, dan tangkapan pertama. Jika diterapkan pada contoh, referensi tersebut menghasilkan `02/01/2024`. Referensi dolar adalah instruksi penggantian, bukan teks yang juga harus muncul pada tanggal yang cocok.
ToolAcre meneruskan string pengganti ke operasi penggantian string JavaScript standar. Sumbernya secara eksplisit mendukung referensi bernomor seperti `$1`, `$2` dan `$3`, dan pola pencarian dikompilasi secara global. Bendera global itulah yang menyebabkan setiap tanggal yang cocok ditulis ulang dalam satu operasi, bukan hanya pertandingan pertama.
Contoh praktis — (\d{4})-(\d{2})-(\d{2}) diganti dengan $3/$2/$1, lalu memeriksa jumlah penggantian terhadap jumlah baris
Tempel kolom yang diekspor, aktifkan Regex, masukkan `(\d{4})-(\d{2})-(\d{2})` di Temukan, dan masukkan `$3/$2/$1` di Ganti. Memilih Ganti semua terlebih dahulu akan menghitung kecocokan dan kemudian menulis ulang, sehingga hasilnya melaporkan berapa banyak string berbentuk tanggal yang diubah di seluruh teks yang ditempel.
Bandingkan angka tersebut dengan jumlah baris yang diharapkan sebelum menyalin hasilnya kembali ke spreadsheet. Hitungan yang lebih rendah menunjukkan kosong atau tanggal dalam format lain; jumlah yang lebih tinggi berarti teks serupa di tempat lain juga cocok. Alat ini tidak memiliki pratinjau ganti satu, jadi gunakan tindakan Undo jika penghitungan atau keluaran menunjukkan pola yang terlalu luas.
Pengurutan ulang lainnya — 'Nama Belakang, Nama Depan' menjadi 'Nama Belakang', dan menukar kolom dari daftar dua kolom
Prinsip yang sama dapat mengubah `Surname, Forename` menjadi `Forename Surname` ketika setiap baris mengandung satu koma: temukan `([^,]+), ([^\r\n]+)` dan ganti dengan `$2 $1`. Di sini setiap kelompok menangkap teks pada satu sisi pemisah yang diketahui, daripada mengasumsikan jumlah digit yang tetap.
Pertukaran dua kolom bukanlah operasi tabel bawaan, meskipun garis besarnya luas. Ini hanya berfungsi ketika teks yang ditempel memiliki pembatas yang dapat diandalkan dan polanya menggambarkan batas garis dengan aman. Koma di dalam nama, bidang yang hilang, atau tab yang tidak konsisten memerlukan pembersihan atau pola yang lebih tepat sebelum penggantian massal dapat dipercaya.
Lebih banyak penataan ulang hanya berfungsi jika input memiliki pemisah yang dapat diandalkan
Titik dalam suatu pola berarti hampir semua karakter, sehingga pola tanggal yang ditulis sebagai `(\d{4}).(\d{2}).(\d{2})` juga menerima garis miring, spasi, atau huruf antar bidang. Keluar dari titik literal sebagai `\.` dan keluar dari karakter meta lainnya saat karakter tersebut seharusnya cocok dengan dirinya sendiri. Tanda kurung yang tidak valid atau tanda kurung yang tidak selesai dilaporkan tanpa mengubah teks.
Penomoran grup dimulai pada 1, bukan 0. Tanda dolar juga memiliki arti pengganti khusus: `$&` menyisipkan seluruh kecocokan dan `$$` menghasilkan satu tanda dolar literal. Perilaku ini berlaku bahkan ketika mode regex dinonaktifkan karena ToolAcre hanya lolos dari sisi pencarian; itu tidak lolos dari string pengganti sebelum JavaScript memprosesnya.
Apa yang tidak tercakup dalam hal ini — nama grup, tampilan belakang, dan nama bulan yang memerlukan tabel pencarian
Grup bernomor dapat menyusun ulang teks yang sudah ada dalam kecocokan, namun mereka tidak dapat menerjemahkan `Jan` menjadi `01` karena memerlukan pencarian, bukan pengurutan ulang. Artikel ini juga tidak bergantung pada grup bernama atau melihat ke belakang, yang kegunaan dan dukungan browsernya melibatkan serangkaian pilihan berbeda dibandingkan pembersihan ekspor sederhana ini.
Ekspresi tanggal memeriksa bentuk, bukan kebenaran kalender. Ini akan cocok dengan `2024-99-88` karena dua digit memenuhi setiap kelompok yang lebih kecil. Validasi tanggal di spreadsheet atau sistem sumber jika kebenarannya penting. Temukan dan ganti sesuai untuk pemformatan yang konsisten, bukan untuk membuktikan bahwa setiap bulan dan hari yang diambil adalah valid.
Kesimpulannya - satu pola, satu penggantian, setiap baris diperbaiki sekaligus di Text Toolkit, dengan pembatalan jika hasilnya tidak seperti yang Anda harapkan
Kelompok penangkap mengubah satu string yang cocok menjadi potongan yang dapat digunakan kembali. Untuk kolom tanggal seragam, tiga kelompok mempertahankan tahun, bulan, dan hari asli sementara `$3/$2/$1` menempatkannya dalam urutan Inggris. Pencarian global menangani semua kecocokan, dan jumlah yang dilaporkan memberikan pemeriksaan langsung terhadap jumlah baris yang ingin Anda ubah.
Jaga agar alur kerja dapat ditinjau: simpan salinan ekspor, gunakan pola tersempit yang sesuai, bandingkan hitungannya, periksa beberapa hasil, dan batalkan jika bukti tidak sesuai dengan harapan Anda. Satu penggantian dengan cakupan yang baik dapat menghapus pengeditan berulang tanpa berpura-pura bahwa setiap nilai berbentuk digit secara otomatis merupakan tanggal yang valid.