Selectivo Find & Replace para melhorar meu código C no Eclipse ou no Notepad ++

0

Estou trabalhando em um código C antigo que possui instruções de depuração como esta:

debug(1, "SomeDebugStmt %s %d", someString, someNumber);
...
debug(2, "another SomeDebugStmt number 2 %s %d", anotherString, anotherNumber);

Existem centenas dessas declarações de depuração neste arquivo C.

Como eu poderia alterar essas instruções de depuração para este formato:

debug(1, "%s--[%d] SomeDebugStmt %s %d", fname, line, someSTring, someNumber);
...
debug(2, "%s--[%d] another SomeDebugStmt number 2 %s %d", fname, line, someSTring, anotherString, anotherNumber);

Eu estava pensando em encontrar & Substituir usando regex pode ser capaz de fazer isso, mas não tenho certeza se de alguma forma lembre-se de substituir a seqüência exata do original ao adicionar alguns valores de seqüência de caracteres extras. Eu tenho a opção de usar Eclispe ou Notepad ++. Quaisquer sugestões / ponteiros appriciated. :)

    
por Omi 22.05.2014 / 02:36

1 resposta

0

Você pode fazer isso com o notepad ++ com o seguinte RegExp para "Localizar:"

debug\(([0-9]+,) " 

e substitua por

debug( "%s--[%d] "

Explicação do regexp

debug         ; find the text "debug"
\(            ; followed by a opening parenthesis,
              ; parentheses have a special meaning in regexp, 
              ; so they must be escaped with a backslash
(             ; followed by the first subpattern, that will go in backreference 
  [0-9]+      ; one or more digits
  ,           ; followed by a comma
)             ; end of the subpattern
 "            ; followed by a blank and a double quote

Substituímos isso por

debug(        ; exact this text
            ; followed by the content of the first subpattern
 "            ; the blank and the double quote
%s--[%d] "   ; and the text you want to insert in those lines
    
por 22.05.2014 / 11:17