Extrai / apaga todos os outros textos além dos que estão dentro de aspas (“”), e depois da string

3

Eu tenho uma saída de dados muito grande em um arquivo .txt que se parece com isso:

value1="1",value2="2",value3="test3",value4="4"
value1="1",value2="2",value3="anothertest3",value4="4"
value1="1",value2="2",value3="lasttest3",value4="4"

Eu quero extrair o valor entre as aspas no value3, fazendo com que o resultado seja assim:

test3
anothertest3
lasttest3

Como eu faria isso?

    
por lleroy 07.02.2013 / 10:59

3 respostas

3

  1. Ir para Pesquisa- > Substituir.
  2. Defina Localizar o que para ^value1=".*",value2=".*",value3="(.{10})",value4=".*"$ .
  3. Defina Substituir por como .
  4. Defina Modo de pesquisa como Regular expression .
  5. Pressione Substituir todos .
por 07.02.2013 / 11:15
2

com o modo de pesquisa = Regular Expression

Procurar por: ^.*,value3="([^"]*)".*$
Substitua por:

    
por 08.02.2013 / 00:21
1

A solução de Sam não funcionou para mim.

Para os dados de exemplo que você forneceu, o seguinte regex funcionou. Ele não tem nenhuma suposição em comprimento, além de que o valor não pode conter um " , mesmo se for escapado (dependendo da fonte de seus dados, isso vale a pena mencionar).

Isso também não pressupõe que haja um value1 ou value2 anterior a ele. Eles podem ser opcionalmente omitidos ou opcionalmente podem haver valores adicionais ou desordenados.

  1. Pesquisa - > Substitua (ou Ctrl + h )
  2. Defina o modo de pesquisa para Expressão regular
  3. Digite o seguinte para o campo Localizar o que

    ^.*value3="([^"]*)".*$
    
  4. Defina Substituir por como $1

  5. Substituir todos
por 08.02.2013 / 00:21