RegEx для замены чисел в строке

Это моя строка:

" "hello": 0, "zulu": 1,234, "Bravo": 987.456 "

Я хочу заменить любое число (целое или действительное с разделителем тысяч или нет) в строке с помощью регулярного выражения и получить эту новую строку:

 "hello": "0", "zulu": "1,234", "Bravo": "987.456" "

Как решить эту проблему?

Запрашивать регулярное выражение — это то же самое, что просить код. Сообщество StackOverflow предпочитает, чтобы вы изучали свою проблему, пробовали решение и спрашивали нас, когда сталкиваетесь с проблемами в своем собственном решении.

RealSkeptic 01.05.2019 10:59

ваша строка не является форматом Json?

YCF_L 01.05.2019 11:13
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете захватить числа, используя это регулярное выражение,

\d+(?:[,.]\d+)*

Здесь \d+ захватывает число, имеющее одну или несколько цифр, а (?:[,.]\d+)* при желании захватывает больше цифр, разделенных запятой или точкой, и заменяет их на "$0", где $0 представляет полное совпадение.

Демонстрация регулярных выражений

демонстрация кода Java,

String s = "\" \"hello\": 0, \"zulu\": 1,234, \"Bravo\": 987.456 \"";
System.out.println(s.replaceAll("\\d+(?:[,.]\\d+)*", "\"$0\""));

Принты,

" "hello": "0", "zulu": "1,234", "Bravo": "987.456" "

Кроме того, в ожидаемом результате отсутствуют двойная кавычка и пробел в начале входной строки, что, скорее всего, должно быть опечаткой.

Другие вопросы по теме