Regex para várias pesquisas e substituição do Notepad ++

0

Por favor me ajude no seguinte padrão

Texto atual

ALPHA;111,'BI_209'
ALPHA;222,'BI_213'
ALPHA;AAA,'BI_209'
ALPHA;FFF,'BI_209'
ALPHA;123,'BI_220'

Status pretendido após a primeira rodada de encontrar & substituir no Notepad ++

BI_209;111,'BI_209'
ALPHA;222,'BI_213'
BI_209;AAA,'BI_209'
BI_209;FFF,'BI_209'
ALPHA;123,'BI_220'

Como visto acima, na primeira rodada - pretendo pesquisar um padrão específico * ALPHA* BI_209* e substituir por *BI_209*BI_209* .
Por favor, ajude-me com o regex correto nos campos FIND e REPLACE para obter o que pretendo obter. Note aí textos variados como '; 111,' ..... '; 222,' .... '; AAA', entre os quais não se deve mudar ou ser afetado.

Se obtiver um padrão para encontrar & substituir, seria útil em uma segunda (e mais) rodada (s) de vários find & substituir - para alcançar este resultado

BI_209;111,'BI_209'
BI_213;222,'BI_213'
BI_209;AAA,'BI_209'
BI_209;FFF,'BI_209'
BI_220;123,'BI_220'
    
por user705628 09.03.2017 / 11:26

2 respostas

1
  1. Encontre o que: ALPHA(.*'BI_209')

    Substitua por: BI_209

    Explicação: o que é correspondido pela expressão regular entre os parênteses é salvo e pode ser recuperado com . Os parênteses podem definir vários grupos de captura, e. (ALPHA)(.*)('BI_209') , que pode ser reutilizado com backreferences , , ...

  2. Juntando tudo isso, você pode fazer todas as substituições de uma só vez:

    Encontre o que: ALPHA(.*)'(BI_209|BI_213|BI_220)'

    Substitua por: ''

    Aqui, o símbolo | especifica strings alternativas para pesquisar.

  3. Aqui está uma solução mais geral, caso você adicione códigos diferentes:

    Encontre o que: ALPHA(.*)'(BI_\d{3})'

    Substitua por: ''

    Aqui \d corresponde a qualquer dígito e é sinônimo de [0-9] ; {3} é o fator de repetição; \d{3} corresponde a qualquer sequência de exatamente três dígitos.

Nota: como paretheses são caracteres especiais, se você quiser especificar um literal ( ou ) , é necessário escapar com uma barra invertida, assim: \( e \) .

    
por 09.03.2017 / 11:34
1

Para encontrar um texto ALPHA...'BI_xxx' e substituir por 'BI_xxx'...'BI_xxx' :

  • abrir a caixa de diálogo Localizar e substituir
  • marque "expressão regular"
  • encontre o que: ALPHA(.*'(BI_\d+)')
  • substitua por:
    teste aqui

Isso corresponderá a qualquer 'BI_xxx' , em que xxx seja um número de pelo menos um dígito.

    
por 09.03.2017 / 11:41