Это моя строка:
" "hello": 0, "zulu": 1,234, "Bravo": 987.456 "
Я хочу заменить любое число (целое или действительное с разделителем тысяч или нет) в строке с помощью регулярного выражения и получить эту новую строку:
"hello": "0", "zulu": "1,234", "Bravo": "987.456" "
Как решить эту проблему?
ваша строка не является форматом Json?




Вы можете захватить числа, используя это регулярное выражение,
\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" "
Кроме того, в ожидаемом результате отсутствуют двойная кавычка и пробел в начале входной строки, что, скорее всего, должно быть опечаткой.
Запрашивать регулярное выражение — это то же самое, что просить код. Сообщество StackOverflow предпочитает, чтобы вы изучали свою проблему, пробовали решение и спрашивали нас, когда сталкиваетесь с проблемами в своем собственном решении.