Notepad ++ reguläre Ausdrücke Zeilen hinzufügen, Zeichenfolge kopieren


5

Ich möchte ersetzen & Zeichenfolgen in Tausenden von Wavefront * .mtl-Dateien suchen, um viele neue Textur-Links hinzuzufügen. Ist das überhaupt mit Notepad ++ möglich? Ich habe diese Dateien schon sehr oft mit Regex geändert, aber diese Aufgabe geht mir weit über den Kopf!

Zum jetzigen Zeitpunkt habe ich in jeder Datei viele Materialteile, die so aussehen:

newmtl Material__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

    map_Kd textures \ wall_exterior_wood_02.png

wobei die Punkte Text darstellen, den ich nicht ändern möchte (und der die Zeichenfolge nicht enthält map_Kd).

Und danach sollte es die NRM & Spec PNGs enthalten, die genau wie die erste benannt sind map_Kd.

Beispiel:

newmtl Material__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

    map_Kd textures \ wall_exterior_wood_02.png
    map_bump textures \ wall_exterior_wood_02_nrm.png
    map_bump textures \ wall_exterior_wood_02_nrm alternative.png
    map_Ks Texturen \ wall_exterior_wood_02_spec.png

Ich habe die mapZeilen der Übersichtlichkeit halber mit Leerzeichen versehen . Wichtig ist, dass die Benennung der PNGs mit Ausnahme der Präfixe " map_bump" und " map_ks" und der Postfixe " _nrm", " _nrm alternative" und " _spec" identisch sein sollte .

Antworten:


4

In Notepad ++.

Verwenden Sie ctrl+ h(ersetzen)

Aktivieren Sie das Optionsfeld "Regulärer Ausdruck" im Feld "Suchmodus" unten links (stellen Sie sicher, dass das Kontrollkästchen "Übereinstimmungen mit Zeilenvorschub" deaktiviert ist).

Finden:

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

Ersetzen:

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

Der Suchausdruck sucht nach "map_Kd", gefolgt von einem oder mehreren Leerzeichen (" \s+"), und behält dann ein oder mehrere Nicht-Leerzeichen (" (\S+)") bei, bis " .png" angezeigt wird.

Beim Ersetzen wird die Zeichenfolge, die Sie beibehalten haben, überall dort " \1" platziert, wo sie angezeigt wird. Ich habe auch " \n" Zeilenumbrüche und Abstände eingefügt, um die Dinge wie in Ihrem Beispiel auszurichten.


Sie, mein Herr, sind mein Notepad ++ - Held!
João Neves
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.