c# - 谷歌货币转换器

标签 c# regex decimal converters currency

我在过去几年中使用过此代码,但谷歌似乎更改了其中的一些链接。出于某种原因,我收到此错误消息:

"Input string was not in a correct format."

在下一行:

decimal rate = System.Convert.ToDecimal(match.Groups[1].Value);

我的代码:

try
{
    WebClient web = new WebClient();
    string url = string.Format("https://www.google.com/finance/converter?a={2}&from={0}&to={1}", fromCurrency.ToUpper(), toCurrency.ToUpper(), amount);

    string response = web.DownloadString(url);

    Regex regex = new Regex("rhs: \\\"(\\d*.\\d*)");
    Match match = regex.Match(response);
    decimal rate = System.Convert.ToDecimal(match.Groups[1].Value);

    return rate;
}
catch
{
    return 0;
}

最佳答案

您可能不喜欢这种方法,但它已经完成了工作。

WebClient web = new WebClient();
string url = string.Format("https://www.google.com/finance/converter?a={2}&from={0}&to={1}", fromCurrency.ToUpper(), toCurrency.ToUpper(), amount);

string response = web.DownloadString(url);

var split  = response.Split((new string[] { "<span class=bld>"}),StringSplitOptions.None);
var value = split[1].Split(' ')[0];
decimal rate = decimal.Parse(value,CultureInfo.InvariantCulture);

关于c# - 谷歌货币转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32013910/

相关文章:

regex - 匹配字符串运算符的正则表达式

c# - 需要正则表达式来满足密码要求

javascript - 正则表达式 - 从 PHP 到 JS

c++ - 为什么我的函数返回 long long,返回 705032704?

python - 在 Python 3.x 中保留或添加小数位

c# - 在新列中按总和显示分组

c# - SharpZipLib 的基础知识。我错过了什么?

sql-server - 删除 SQL 查询中的小数点

c# - 这个 C# Parallel.ForEach "localFinally"方法线程安全吗?

c# - 如何在不使用数据库的情况下保护我的 C# Windows 应用程序免遭盗版?