RegEx для замены чисел в строке - PullRequest
3 голосов
/ 01 мая 2019

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

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

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

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

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

1 Ответ

5 голосов
/ 01 мая 2019

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

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

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

Regex Demo

Демонстрационный код 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" "

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...