.Net Core Regex Replace 返回不同于 localhost
.Net Core Regex Replace returning different from localhost
发生了一些奇怪的事情,我有一个来自 Excel 文件的值,我使用 Regex.Replace() 将该值转换为我需要的值,在本地一切正常但是当我发布return 不同于 Regex.Replace():
鉴于此价值:376900€
我使用这个代码:
x = Regex.Replace(sheet.Cells['D' + row].Text.Replace("€", ""), @"\s+", "");
var Amount = int.Parse(x);
本地x是:376900
但在应用服务中发布时 x 是:376,900,在解析为 int 时抛出异常。
我在没有使用 Regex.Replace() 的情况下解决了它,但想知道为什么会这样?是因为服务器位于北欧并且 Regex.Replace() 使用了一些英国转换或其他东西吗?
谢谢
我的测试结果。 Azure 应用服务返回值与本地相同。
所以MacroMarc 的评论是非常正确的。应该是Excel文件中该字段的数据格式。在本地调试时,得到376900€
(根据本地culture/format)。
建议
您可以使用调试模型部署您的 Azure Web 应用程序。并使用远程调试,检查 sheet.Cells['D' + row].Text
的值。相信经过调试,你会找到自己想要的答案。
发生了一些奇怪的事情,我有一个来自 Excel 文件的值,我使用 Regex.Replace() 将该值转换为我需要的值,在本地一切正常但是当我发布return 不同于 Regex.Replace():
鉴于此价值:376900€
我使用这个代码:
x = Regex.Replace(sheet.Cells['D' + row].Text.Replace("€", ""), @"\s+", "");
var Amount = int.Parse(x);
本地x是:376900
但在应用服务中发布时 x 是:376,900,在解析为 int 时抛出异常。
我在没有使用 Regex.Replace() 的情况下解决了它,但想知道为什么会这样?是因为服务器位于北欧并且 Regex.Replace() 使用了一些英国转换或其他东西吗?
谢谢
我的测试结果。 Azure 应用服务返回值与本地相同。
所以MacroMarc 的评论是非常正确的。应该是Excel文件中该字段的数据格式。在本地调试时,得到376900€
(根据本地culture/format)。
建议
您可以使用调试模型部署您的 Azure Web 应用程序。并使用远程调试,检查 sheet.Cells['D' + row].Text
的值。相信经过调试,你会找到自己想要的答案。