1

У меня есть несколько строк, как это:

{
"source": "Source A",
"target": "Source B",
"idTarget": "3,345",
"strength": "0.5",
"value": "633.5138"
}
{
"source": "Source C",
"target": "Source D",
"idTarget": "1,253",
"strength": "0.7",
"value": "5465.238"
}

Я хочу удалить . (точка) в строке, которая имеет value слова, но не в других строках. Так это будет выглядеть примерно так:

{
"source": "Source A",
"target": "Source B",
"idTarget": "3,345",
"strength": "0.5",
"value": "6335138"
}
{
"source": "Source C",
"target": "Source D",
"idTarget": "1,253",
"strength": "0.7",
"value": "5465238"
}

Есть ли способ сделать это?

2 ответа2

2
  • Ctrl+H
  • Найти что: ^"value":[^.]+\K\.
  • Заменить на: LEAVE EMPTY
  • UNcheck Match case
  • проверить обернуть
  • проверьте регулярное выражение
  • НЕ ПРОВЕРИТЬ . matches newline
  • Заменить все

Объяснение:

^           : begining of line
  "value":  : literally
  [^.]+     : 1 or more not dot
  \K        : forget all we have seen until this position
  .         : a dot

Результат для данного примера:

{
"source": "Source A",
"target": "Source B",
"idTarget": "3,345",
"strength": "0.5",
"value": "6335138"
}
{
"source": "Source C",
"target": "Source D",
"idTarget": "1,253",
"strength": "0.7",
"value": "5465238"
}
1

Предполагая, что ваши числа всегда отформатированы как 123.1234, вы можете использовать регулярное выражение для достижения этого:

Найдите что: "value": "([0-9]+)\.([0-9]+)"
Заменить на: "value": "$1$2"
Режим поиска: регулярное выражение

Это поисковое выражение найдет строки, соответствующие "value": "<numbers>.<numbers>" и поместит найденные номера в "группу захвата", обозначенную круглыми скобками. Обе группы ($1 , $2) затем добавляются обратно в замененный текст без точки.

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