Notepad ++ regex menambahkan baris, menyalin string

5

Saya ingin mencari ganti & string dalam ribuan file wavefront * .mtl untuk menambahkan banyak tautan Tekstur baru. Apakah ini mungkin dengan Notepad ++ regex? Saya sudah sering mengubah file-file ini dengan regex, tetapi tugas ini jauh di atas kepala saya!

Pada kondisi saat ini saya mendapatkan banyak Materialparts di setiap file yang terlihat seperti ini:

Bahan newmtl__28
    Ns 0,000000
         ︙
    Kd 1,000000 1,000000 1,000000
    Ks 0,000000 0,000000 0,000000
    Ke 0,000000 0,000000 0,000000

    tekstur map_Kd \ wall_exterior_wood_02.png

di mana titik-titik mewakili teks yang tidak ingin saya ubah (dan itu tidak mengandung string map_Kd).

Dan setelah itu harus mengandung NRM & Spec PNG yang dinamai persis seperti yang pertama map_Kd.

Contoh:

Bahan newmtl__28
    Ns 0,000000
         ︙
    Kd 1,000000 1,000000 1,000000
    Ks 0,000000 0,000000 0,000000
    Ke 0,000000 0,000000 0,000000

    tekstur map_Kd \ wall_exterior_wood_02.png
    tekstur map_bump \ wall_exterior_wood_02_nrm.png
    tekstur map_bump \ wall_exterior_wood_02_nrm alternative.png
    tekstur map_Ks \ wall_exterior_wood_02_spec.png

Saya telah menambahkan spasi ke mapgaris untuk kejelasan. Penting adalah bahwa penamaan PNG harus sama kecuali untuk awalan " map_bump" dan " map_ks" dan postfixes " _nrm", " _nrm alternative", dan " _spec".

gerryllix
sumber

Jawaban:

4

Di Notepad ++.

Gunakan ctrl+ h(ganti)

Pilih tombol radio "Ekspresi Reguler" di kotak Mode Pencarian di kiri bawah (pastikan kotak centang yang cocok dengan baris baru tidak dijaga)

Menemukan:

map_Kd\s+(\S+)\.png

Menggantikan:

map_Kd \1.png\n map_bump \1_nrm.png\n map_bump \1_nrm_alternative.png\n mapKs \1_spec.png

Ekspresi find mencari "map_Kd" diikuti oleh satu atau lebih spasi (" \s+") lalu menyimpan satu atau lebih karakter non-spasi (" (\S+)") hingga hits " .png"

Pengganti menempatkan string yang Anda simpan di tempat " \1" muncul. Saya juga menyertakan \nbaris baru dan spasi untuk menyelaraskan hal-hal seperti pada contoh Anda.

Tim Radcliffe
sumber
Anda Tuan adalah pahlawan Notepad ++ saya!
João Neves