我想替换所有这样的文本:
"latitude": "32.336533",
有了这个:
"latitude": 32.336533,
我正在使用 Notepad++。
答案1
使用正则表达式使用以下模式:
"([0-9]+\.{0,1}[0-9]*)"
并替换为:
\1
我用replace all
notepad++ 的功能成功了。它"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