Remova as aspas em torno de um número (deixando outras aspas)

2

Eu quero substituir todo o texto assim:

"latitude": "32.336533",

com isso:

"latitude": 32.336533,

Estou usando o Notepad ++.

    
por user322634 13.05.2014 / 23:22

2 respostas

7

Usando o Regex, use o seguinte padrão:

"([0-9]+\.{0,1}[0-9]*)"

e Substituir por:


Isso funcionou para mim com a função replace all do notepad ++. Ele também encontrará "12." e removerá as aspas duplas. Para uma pesquisa mais abrangente, use este padrão Regex:

"(\-{0,1}[0-9]+(\.[0-9]+){0,1})"

que, na verdade, também encontrará números negativos e corresponderá a flutuações apenas com dígitos após o ponto decimal.

Explicação:

corresponderá

    "             ; a leading double quote
    (             ; followed by the outer subpattern (in backreference :
      \-{0,1}       ; an optional minus sign
      [0-9]+        ; followed by 1 or more decimal digits (could be replaced by \d)
      (             ; followed by the next subpattern
         \.           ; a decimal point
         [0-9]+       ; followed by 1 or more digits
      ){0,1}        ; maximal 1 occurrence of this subpattern, and it's optional
    )             ; end of the outer subpattern
    "             ; followed by the trailing double quote

Backreference inclui tudo no subpadrão externo, incluindo o interno, se existir. Você pode usar \d para as classes [0-9] e usar o ponto de interrogação ? em vez do último {0,1} group. Lembre-se que o uso do ? pode alterar a avidez dos padrões.

Exemplo:

o texto no notepad ++ com as seguintes linhas

"latitude": "-32.336533",
"latitude": "32.336533",
"foo": "14"
"bla": "12."
"to7": "12.a"

será alterado depois de aplicar "Substituir tudo" por

"latitude": -32.336533,
"latitude": 32.336533,
"foo": 14
"bla": "12."
"to7": "12.a"
    
por 14.05.2014 / 00:12
0

Correspondência de regex

"([\d\.]+)"

Substituir por


    
por 14.05.2014 / 00:45