2011-02-15 79 views
0

在我問了一會兒之前,我環視了一會兒,但我似乎發現了很多如何使用正則表達式對電子郵件和貨幣進行轉換,但沒有將乘數與設置值相乘。 本質上,我有一個貨幣值字段可以說:127.25GBP需要轉換爲165.42(只有兩個小數點和沒有貨幣指標) 可以這樣做,如果是的如何?正則表達式乘法

您的幫助將不勝感激!

感謝名單

德爾

+0

@kusma和@Olli,thanx傢伙的信息。我的應用程序允許我使用具有Regex C#和VB.NET的內容轉換工具 - 如果regex對此沒有好處,對C#或VB.NET有任何想法? – Del 2011-02-15 11:51:17

回答

2

正則表達式是用於文本匹配,而不是算術。一些接受正則表達式的工具可以用來執行算術運算,例如Perl和Awk。

0

正則表達式,它們的核心是用於匹配字符串,並且在某些軟件庫中用於替換其他字符串和類似的字符串處理,但不用於數學計算。您需要將使用正則表達式捕獲的值存儲爲數字類型,然後對其進行乘法運算,然後根據需要再次將結果格式化爲字符串。

在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是足夠好的。

+0

或`decimal`而不是`int`。 – 2011-02-15 11:45:35