在我问了一会儿之前,我环视了一会儿,但我似乎发现了很多如何使用正则表达式对电子邮件和货币进行转换,但没有将乘数与设置值相乘。 本质上,我有一个货币值字段可以说:127.25GBP需要转换为165.42(只有两个小数点和没有货币指标) 可以这样做,如果是的如何?正则表达式乘法
您的帮助将不胜感激!
感谢名单
德尔
在我问了一会儿之前,我环视了一会儿,但我似乎发现了很多如何使用正则表达式对电子邮件和货币进行转换,但没有将乘数与设置值相乘。 本质上,我有一个货币值字段可以说:127.25GBP需要转换为165.42(只有两个小数点和没有货币指标) 可以这样做,如果是的如何?正则表达式乘法
您的帮助将不胜感激!
感谢名单
德尔
正则表达式是用于文本匹配,而不是算术。一些接受正则表达式的工具可以用来执行算术运算,例如Perl和Awk。
正则表达式,它们的核心是用于匹配字符串,并且在某些软件库中用于替换其他字符串和类似的字符串处理,但不用于数学计算。您需要将使用正则表达式捕获的值存储为数字类型,然后对其进行乘法运算,然后根据需要再次将结果格式化为字符串。
在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是足够好的。
或`decimal`而不是`int`。 – 2011-02-15 11:45:35
@kusma和@Olli,thanx家伙的信息。我的应用程序允许我使用具有Regex C#和VB.NET的内容转换工具 - 如果regex对此没有好处,对C#或VB.NET有任何想法? – Del 2011-02-15 11:51:17