Extrai uma string específica de uma string com caractere final específico

0

Eu tenho um arquivo de texto e uso o Notepad ++. Eu tenho linhas de entrada como abaixo (com nova linha e sem padrão definido) e quero extrair o número antes de T e os números de saída como delimitado por tubos.

Entrada

(1745817T OR 1745818T OR 1745820T OR 1745819T) AND NOT (1786717T)
(3406379T OR 3410183T OR 3414397T OR 3272288T OR 3348134T OR 3379438T OR 3348136T OR 3420508T OR 3420503T OR 3420511T OR 3420504T OR 3420505T OR 3420507T OR 3420512T)

Resultado

1745817|1745818|1745820|1745819|1786717
3406379|3410183|3414397|3272288|3348134|3379438|3348136|3420508|3420503|3420511|3420504|3420505|3420507|3420512

Por favor, ajude como extrair esta string das linhas. Saudações, Ashish

    
por AshishETL 04.06.2018 / 12:29

1 resposta

3

Editar, de acordo com a alteração da solicitação:

  • Ctrl + H
  • Encontre o que: ([()])|T[^\d\r\n]+(\R)?
  • Substituir por: (?1:(?2$2:|))
  • check Embrulhe
  • verificar expressão regular
  • Substituir todos

Explicação:

    ([()])      : group 1, open or close parenthesis
  |             : OR
    T           : the letter T
    [^\d\r\n]+  : 1 or more any character that is not a digit or linebreak
    (\R)?       : group 2, a line break, optional

Substituição:

(?1:            : conditionnal replacement, 
                    if group 1 exists replace with nothing
  (?2$2:|)      : conditionnal replacement, 
                    if group 2 exists let it at same place
                    else replace with pipe |
)

Resultado para o exemplo dado:

1745817|1745818|1745820|1745819|1786717
3406379|3410183|3414397|3272288|3348134|3379438|3348136|3420508|3420503|3420511|3420504|3420505|3420507|3420512
    
por 04.06.2018 / 13:59