Я хочу заменить весь текст следующим образом:
"latitude": "32.336533",
с этим:
"latitude": 32.336533,
Я использую Блокнот ++.
Используя Regex, используйте следующий шаблон:
"([0-9]+\.{0,1}[0-9]*)"
и заменить на:
\1
У меня это сработало с replace all
функции notepad++. Было бы найти "12."
тоже и убрать двойные кавычки. Для более полного поиска используйте этот шаблон Regex:
"(\-{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}
. Помните, что использование ?
может изменить жадность шаблонов.
Пример:
текст в блокноте ++ со следующими строками
"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"
Регулярное совпадение
"([\d\.]+)"
Заменить
\1