Notepad ++ regex adicionar linhas, copiar cadeia

5

Eu quero pesquisar substituir & strings em milhares de arquivos wavefront * .mtl para adicionar muitos novos links de textura. Isso é possível com o Notepad ++ regex? Eu já alterei esses arquivos muito frequentemente com regex, mas essa tarefa está muito acima da minha cabeça!

No estado atual, tenho muitos Materialparts em todos os arquivos com esta aparência:

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

onde os pontos representam texto que não quero alterar (e isso não contém a string map_Kd ).

E depois deve conter o NRM & PNGs de especificação nomeados exatamente como o primeiro map_Kd .

Exemplo:

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   textures\wall_exterior_wood_02_spec.png

Adicionei espaços às linhas map para maior clareza. É importante que a nomenclatura dos PNGs seja a mesma, exceto os prefixos " map_bump " e " map_ks " e os postfixes " _nrm ", " _nrm alternative " e " _spec ". / p>     

por gerryllix 22.03.2013 / 23:53

1 resposta

4

No Notepad ++.

Use ctrl + h (substituir)

Selecione o botão de opção "Expressão regular" na caixa Modo de pesquisa na parte inferior esquerda (certificando-se de que a caixa de seleção de nova linha de correspondências é desmarcada)

Encontrar:

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

Substituir:

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

A expressão find procura por "map_Kd" seguida por um ou mais espaços (" \s+ ") e mantém um ou mais caracteres não espaciais (" (\S+) ") até atingir " .png "

A substituição coloca a string que você manteve onde quer que " " apareça. Também incluí as novas linhas de " \n " e o espaçamento para alinhar as coisas como no seu exemplo.

    
por 25.03.2013 / 11:36