(Notepad ++) Como substituir um texto que tenha determinada palavra nessa linha?

1

Eu tenho várias linhas como esta:

{
"source": "Source A",
"target": "Source B",
"idTarget": "3,345",
"strength": "0.5",
"value": "633.5138"
}
{
"source": "Source C",
"target": "Source D",
"idTarget": "1,253",
"strength": "0.7",
"value": "5465.238"
}

Eu quero remover o . (ponto) na linha que tem a palavra value , mas não em outras linhas. Então, seria algo parecido com isto:

{
"source": "Source A",
"target": "Source B",
"idTarget": "3,345",
"strength": "0.5",
"value": "6335138"
}
{
"source": "Source C",
"target": "Source D",
"idTarget": "1,253",
"strength": "0.7",
"value": "5465238"
}

Qualquer maneira de fazer isso?

    
por deathlock 16.11.2017 / 13:25

2 respostas

2
  • Ctrl + H
  • Encontre o que: ^"value":[^.]+\K\.
  • Substituir por: LEAVE EMPTY
  • Desmarque o caso de correspondência
  • check Embrulhe
  • verificar expressão regular
  • NÃO VERIFIQUE . matches newline
  • Substituir todos

Explicação:

^           : begining of line
  "value":  : literally
  [^.]+     : 1 or more not dot
  \K        : forget all we have seen until this position
  .         : a dot

Resultado para o exemplo dado:

{
"source": "Source A",
"target": "Source B",
"idTarget": "3,345",
"strength": "0.5",
"value": "6335138"
}
{
"source": "Source C",
"target": "Source D",
"idTarget": "1,253",
"strength": "0.7",
"value": "5465238"
}
    
por 16.11.2017 / 13:51
1

Supondo que seus números sejam sempre formatados como 123.1234, você pode usar uma expressão regular para conseguir isso:

Encontre o que: "value": "([0-9]+)\.([0-9]+)"
Substituir por: "value": "$1$2"
Modo de pesquisa: expressão regular

Esta expressão de pesquisa encontrará strings que correspondem a "value": "<numbers>.<numbers>" e colocará os números encontrados em um "grupo de captura", denotado com os colchetes. Os dois grupos ( $1 , $2 ) são então adicionados de volta ao texto substituído sem o ponto.

    
por 16.11.2017 / 13:40