删除数字周围的引号(保留其他引号)

删除数字周围的引号(保留其他引号)

我想替换所有这样的文本:

"latitude": "32.336533",

有了这个:

"latitude": 32.336533,

我正在使用 Notepad++。

答案1

使用正则表达式使用以下模式:

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

并替换为:

\1

我用replace allnotepad++ 的功能成功了。它"12."也能找到并删除双引号。要进行更全面的搜索,请使用以下正则表达式模式:

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

它实际上也会找到负数,并且只匹配小数点后的数字的浮点数。

解释:

它将匹配

    "             ; a leading double quote
    (             ; followed by the outer subpattern (in backreference \1:
      \-{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

反向引用\1包括外部子模式中的所有内容,包括内部子模式(如果存在)。您可以使用\d[0-9]并使用问号?代替最后一个{0,1}组。请记住,使用?可能会改变模式的贪婪性。


例子:

notepad++ 中的文本包含以下几行

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

将更改后应用“全部替换”

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

答案2

正则表达式匹配

"([\d\.]+)"

用。。。来代替

\1

相关内容