Как удалить долларовый формат с помощью регулярных выражений - PullRequest
3 голосов
/ 03 декабря 2010

Я пытаюсь удалить формат доллара из строки '$ 1,109,889.23'. Я попытался использовать регулярное выражение с:

"[^\\d]" 

но я получаю запятые.

Любая помощь? Заранее спасибо.

Ответы [ 8 ]

7 голосов
/ 17 апреля 2017

Для этого вам не нужно регулярное выражение.

Просто используйте lsParseCurrency:

numericValue = lsParseCurrency('$1,109,889.23'); writeOutput(numericValue);

Примерна trycf.com выход:

1109889.23

Согласно комментарию Ли ниже ... если ваш язык не использует , и . дляразделитель тысяч и десятичный разделитель (соответственно) ... убедитесь, что вы также указали локаль, например:

numericValue = lsParseCurrency('$1,109,889.23', 'en_us');

2 голосов
/ 03 декабря 2010

Как насчет просто выполнить поиск и заменить , и $?

, но если вы собираетесь это сделать.

[^\d.]+

2 голосов
/ 03 декабря 2010

Я использую ColdFusion.[^ \ D.] Прекрасно работает как eldarerathis упомянутый выше.

   <cfset amt = '$1,109,889.23'>
   <cfset newAmt = ReReplace(amt, "[^\d.]", "","ALL") >
   <cfoutput>#newAmt#</cfoutput>
0 голосов
/ 03 декабря 2010

В Java:

String newString = oldString.replaceAll("$", "");
0 голосов
/ 03 декабря 2010

Я не уверен, что точно понимаю, чего вы хотите, но, похоже, в вашем примере вы бы хотели получить «1 109 989,23».Если это так, почему бы вам просто не выбрать использовать [\d,.\x20]+ (обратите внимание, что период не экранирован, как в наборе символов, и отметьте \ x20 для выбора пробелов, если они используют это вместо запятых)просто номер.Если вы хотите выбрать все, что НЕ является частью числа, как показывает ваш пример, то вам нужно просто найти [^\d,.\x20].Это будет работать для любого формата валюты, а не только для тех, которые используют знак доллара.Это также позволит использовать несколько знаков препинания, например, вместо пробелов вместо пробелов разделять несколько чисел.Тем не менее, я согласен с Тимом Пицкером в том, что регулярное выражение может не подходить для работы.

0 голосов
/ 03 декабря 2010

Будет ли это работать для вас? ^ \ $

0 голосов
/ 03 декабря 2010

[\d,.]+ даст вам номер части. Здесь - ваш пример на Rubular.

0 голосов
/ 03 декабря 2010

Поскольку $ является метасимволом в регулярном выражении (это означает «конец строки» или «конец строки», в зависимости от текущих настроек), его необходимо экранировать до \$. Но зачем вообще использовать регулярное выражение, если это всего лишь один фиксированный символ?

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