Suchen und Ersetzen mit RegExp nur in Teilstring

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
Jesco
Junior Member
Junior Member
Posts: 65
Joined: 2003-12-05, 17:28 UTC

Suchen und Ersetzen mit RegExp nur in Teilstring

Post by *Jesco »

Hallo,

ich möchte im Umbenenn-Tool Zeichen in nur in einem Teil von Datei- oder Ordnernamen ersetzen. Kann dies mit regulären Ausdrücken umgesetzt werden? Z.B.:

"teil1-teil2-teil3_teil4-teil5"
soll umgewandelt werden in:
"teil1 teil2 teil3_teil4-teil5"

D.h. Bindestriche in Leerzeichen umwandeln, aber nur in dem Teil vor dem Unterstrich. Die Zeichenketten teil1, teil2 etc. können unterschiedliche Längen haben.

Würde mich freuen, wenn jemand hierzu eine Idee hätte.

Gruß
Jesco
User avatar
Stefan2
Power Member
Power Member
Posts: 4281
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Post by *Stefan2 »

Hallo Jesco.

In deinem Fall könnte dir dies helfen:


In TC ab v8 kann man die Option "nur 1x ausführen" anhaken.

D.h.,
Suche und Ersetzte zweimal
das jeweils erste "-" mit " "
bei gesetzter Option "1x"


.
User avatar
white
Power Member
Power Member
Posts: 5837
Joined: 2003-11-19, 08:16 UTC
Location: Netherlands

Post by *white »

Stefan2 wrote:Suche und Ersetzte zweimal
das jeweils erste "-" mit " "
Suche und Ersetzte "-|-" mit " | "? ;-)
Jesco
Junior Member
Junior Member
Posts: 65
Joined: 2003-12-05, 17:28 UTC

Post by *Jesco »

Stefan2 wrote:Suche und Ersetzte zweimal
das jeweils erste "-" mit " "
bei gesetzter Option "1x"
Hallo,

danke für den Hinweis, hilft mir leider nicht weiter: ich war bei der Problembeschreibung nicht präzise genug: die Zahl der Teilstrings kann auch variieren, z.B.
"teil1-teil2-teil3_teil4-teil5"
"teil1-teil2-teil3-teil4_teil5-teil6-teil7"

Gruß
Jesco
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Suchen nach:

Code: Select all

(.*)-(.*)_(.*)
Ersetzen durch:

Code: Select all

$1 $2_$3
[x] RegEx

Mehrfach ausführen (<F5>; <Alt+S>) bis im Teil vor dem Unterstrich alle Bindestriche durch Leerzeichen ersetzt sind.

HTH
Holger
User avatar
white
Power Member
Power Member
Posts: 5837
Joined: 2003-11-19, 08:16 UTC
Location: Netherlands

Post by *white »

Suchen nach:

Code: Select all

-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*|-*_*
Ersetzen durch:

Code: Select all

 *| *| *| *| *| *| *| *| *| *| *| *| *| *| *| *| *| *| *| *
RegEx


-----------------------------

Suchen nach:

Code: Select all

-?([^-_]*_.*)|-
Ersetzen durch:

Code: Select all

 $1
RegEx

Ein Leerzeichen werde am Anfang hinzugefügt wenn es nichts zu ersetzen gibt.
Z.B.:
"teil1_teil2-teil3" -> " teil1_teil2-teil3"
"teil1 teil2 teil3_teil4-teil5" -> " teil1 teil2 teil3_teil4-teil5"

Sie können danach den Leerzeichen am Anfang entfernen, oder vorher nur die relevanten Dateinamen markieren (Dateiart: "<-.*_|^[^_]*$")
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

-*_*|
Das hat schon beinahe etwas von einem japanischen Smiley ;-)

p(*^-^*)q

Holger
Jesco
Junior Member
Junior Member
Posts: 65
Joined: 2003-12-05, 17:28 UTC

Post by *Jesco »

Hallo,

vielen Dank für die hilfreichen Antworten!

Mit dem Vorschlag von HolgerK ist es schon gut machbar, aber mit den Ideen von white geht es sogar in einem Durchgang.

Bei diesem Ausdruck ist mir nicht vollständig klar, was passiert:
white wrote:

Code: Select all

-?([^-_]*_.*)|-
Ist das '?' hier der 'Genügsam'-Operator? Ich dachte, der müsste stets einem Iterator folgen.

Gruß
Jesco
User avatar
white
Power Member
Power Member
Posts: 5837
Joined: 2003-11-19, 08:16 UTC
Location: Netherlands

Post by *white »

Jesco wrote:Bei diesem Ausdruck ist mir nicht vollständig klar, was passiert:
white wrote:

Code: Select all

-?([^-_]*_.*)|-
Ist das '?' hier der 'Genügsam'-Operator? Ich dachte, der müsste stets einem Iterator folgen.
Eine Erklärung in der Hilfe fehlt aber Sie können es auf der Website des Regex-Bibliothek nachsuchen.
http://www.regexpstudio.com/TRegExpr/Help/RegExp_Syntax.html wrote: * zero or more ("greedy"), similar to {0,}
+ one or more ("greedy"), similar to {1,}
? zero or one ("greedy"), similar to {0,1}
Das "?" ist zu verhindern
"teil1_teil2-teil3-teil4" wird "teil1_teil2 teil3 teil4"
oder
"teil1 teil2_teil3-teil4-teil5" wird "teil1 teil2_teil3 teil4 teil5"
Jesco
Junior Member
Junior Member
Posts: 65
Joined: 2003-12-05, 17:28 UTC

Post by *Jesco »

OK, vielen Dank.
Post Reply