Умножение регулярных выражений - PullRequest
0 голосов
/ 15 февраля 2011

некоторое время оглядывался, прежде чем я спросил, но я, кажется, нашел много способов обработки электронной почты и конвертации валюты с использованием регулярных выражений, но ничего не касалось простого умножения числа на заданное значение.По сути, у меня есть поле значения валюты, скажем, 127.25GBP, которое необходимо преобразовать в 165.42 (только два десятичных знака и нет индикатора валюты). Можно ли это сделать, и если да, то как?

Ваша помощь будетс благодарностью!

Спасибо

Del

Ответы [ 2 ]

2 голосов
/ 15 февраля 2011

Регулярные выражения предназначены для сопоставления текста, а не для арифметики.Некоторые инструменты, которые принимают регулярные выражения, могут использоваться для выполнения арифметики, например, Perl и Awk.

0 голосов
/ 15 февраля 2011

Регулярные выражения по своей сути предназначены для сопоставления строк, а в некоторых программных библиотеках - для замены строк другими и аналогичной обработки строк, но не для выполнения математических операций. Вам необходимо сохранить значение, полученное с помощью регулярного выражения, в числовой тип и выполнить для него умножение, а затем снова отформатировать результат в виде строки, если необходимо.

В Python 2.7:

import re
exchangeRate = 165.42 / 127.25
numString = re.match('(\d+.\d\d)GBP', '127.25GBP').group(1)
num = float(numString)
numConverted = num * exchangeRate
numConvertedFormatted = "%.2f" % numConverted

Если вы делаете серьезные валютные вычисления, я бы посоветовал использовать int с фиксированной точкой (или в случае десятичного числа Python) вместо float. Для приближений достаточно поплавка.

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