Regex для удаления символа доллара и конечных нулей для ввода цены - PullRequest
0 голосов
/ 30 апреля 2018

Я хочу удалить завершающие нули после точки и символ $ из ввода цены. Например,

$100    -> 100
$10.000  -> 10
$10.0100 -> 10.01 
$10.1234 -> 10.1234

У меня есть следующее регулярное выражение, однако оно не удаляет знак $ и точку .: [.0]+$. Также удаляются все нули.

1 Ответ

0 голосов
/ 30 апреля 2018

Вы можете использовать

String result = s.replaceAll("^\\$|(?:(\\.[0-9]*[1-9])|\\.)0+$", "$1");

См. Демоверсию regex .

Детали

  • ^\\$ - символ $ в начале строки
  • | - или
  • (?: - начало группы без захвата, соответствующей любой из 2 альтернатив:
    • (\\.[0-9]*[1-9]) - Группа захвата 1 (позже упоминаемая с помощью $1 заполнителя): a ., за которым следуют цифры 0+, за которыми следуют цифры, отличные от 0
    • | - или
    • \\. - точка
  • ) - конец группы без захвата
  • 0+ - 1+ нулей
  • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...