"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Ersetzen von Ausdrücken

Blaues U-boot 13.01.2018 - 13:57 1403 2
Posts

Blaues U-boot

blupp, blupp
Avatar
Registered: Aug 2005
Location: Graz
Posts: 1537
Servus,

ich habe eine C-funktion bekommen, die ich nun umbauen muss.
vorhanden sind ausdrücke in der form:
Code:
array[i][j][k]
und ich brauche diese aber in der form:
Code:
array[funktion(i, j, k, size_x, size_y)]
das ist kein problem, jedoch können statt i, j, k, auch i+1, i-1, i+2, usw. und das in beliebiger kombination mit den anderen indizes vorkommen.
geht das mit Reguläre Ausdrücke und simples suchen und ersetzen in notepad++?
ich bekomms einfach nicht hin und händisch ändern ist bei tausenden zeilen keine option.

tia

that

Moderator
Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11325
In vim gehts zumindest so:

Code:
:%s/array\[\(.\{-\}\)\]\[\(.\{-\}\)\]\[\(.\{-\}\)\]/array\[funktion(\1, \2, \3, size_x, size_y)\]/g

Blaues U-boot

blupp, blupp
Avatar
Registered: Aug 2005
Location: Graz
Posts: 1537
danke, habs nun hinbekommen mit notepad++
Code:
rho\[(\w\s?[[:punct:]]?\s?\w?)\]\[(\w\s?[[:punct:]]?\s?\w?)\]\[(\w\s?[[:punct:]]?\s?\w?)\]
ersetzen mit
Code:
rho\[lookup_3d\(\1, \2, \3\, size_x, size_y\)\]
scheint zu funken und berücksichtig auch das die whitespaces nicht immer konsistent sind ...
aber mein hirn is nun am ende, nach dem erlernen von reguläre ausdrücke von 0 weg :D
beispiele dazu erscheinen einem am anfang wie voodoo
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz