ГФ
Галина Филиппова

регулярное выражение для суммы с валютой

как должно выглядеть регулярное выражение для текста - "400,000.00 RUR". использую ([\d\.,\s-]+[\d\.]+)\s(.{3}) но у меня получается 400,000 а должно получаться 400000

в вашем примере "400,000.00 RUR" разделяется на 3 значения: значение 1 = 400, значение 2 = 000 значение 3 = "", а мне нужно чтобы получилось на выходе одно значение = 400000,00

есть еще такой вариант выхода из ситуации - в тексте могут отображаться суммы или так "400,000" или "400,000.00". задача не убирать запятую, а сделать такое регулярное выражение, чтобы на выходе всегда было такое значение - "400,000.00". как это можно сделать?

Ст
Стасик

([\d\.,\s-]+[\d\.]+) соответствует 400,000.00
если хотите получить 400000, то следует прибегнуть к группировке цифровых последовательностей, с последующей заменой (или сборкой, если был match)

([0-9]{1,3})[,\.\s]([0-9]{3})[\.,\s]([0-9]{3})?\.?[0-9]{2}\s[\w]{3} - позволит решить вашу задачу
[\.,\s]([0-9]{3})?\.? -позволяет обробатывать числа на порядок больше, чем в приведенном вами примере
если нужно обрабатывать суммы < 1 000 000, то будет достаточно ([0-9]{1,3})[,\.\s]([0-9]{3})\.[0-9]{2}\s[\w]{3}

Похожие вопросы
Регулярные выражения
Помогите с регулярным выражением.. . )))
PHP регулярное выражение
Регулярное выражение
помогите с регулярным выражением
PHP регулярные выражения
Помогите с регулярными выражениями...
[php] Регулярные выражения
регулярное выражение AS3
Как составить регулярное выражение?