2

Я хочу заменить весь текст следующим образом:

"latitude": "32.336533",

с этим:

"latitude": 32.336533,

Я использую Блокнот ++.

2 ответа2

7

Используя 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"
0

Регулярное совпадение

"([\d\.]+)"

Заменить

\1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .