0

我正在使用 Visual Web Ripper 提取网站上产品的名称和价格。

当我从表格中提取价格时,它以如下形式出现:

氪。129,30

我需要提取 129,30,然后将逗号变为点 (129.30)。

Visual Web Ripper 可以使用脚本来修改提取的内容。它可以使用标准的 Regex、C# 和 VB.NET。

在 Regex 选项卡中,我发现

(\d+.)?(\d+)(.\d+)?

给我 129,30,但是我不能把逗号变成点。

因此我必须使用 C#。它带有这个标准脚本:

using System;
using VisualWebRipper.Internal.SimpleHtmlParser;
using VisualWebRipper;
public class Script
{
    //See help for a definition of WrContentTransformationArguments.
    public static string TransformContent(WrContentTransformationArguments args)
    {
        try
        {
            //Place your transformation code here.
            //This example just returns the input data
            return args.Content;
        }
        catch(Exception exp)
        {
            //Place error handling here
            args.WriteDebug("Custom script error: " + exp.Message);
            return "Custom script error";
        }
    }
}

如何修改它以提取数字然后用点替换逗号?

4

2 回答 2

4

String.Replace 是一个选项 ( text.Replace(",", "."))。

最好用正确的 CultureInfo 正确解析数字,而不是用 InvariantCulture 重新格式化它。

于 2012-05-14T23:58:07.800 回答
3

这显然是克朗,所以我们应该使用瑞典文化信息来翻译它。首先我们从输入开始:

var original = "Kr. 129,30";

获取文化:

using System.Globalization;
var culture = CultureInfo.GetCultureInfo("sv-SE");

这种文化期望货币字符串kr(不区分大小写),但我们有Kr.. 所以让我们更新它:

var format = (NumberFormatInfo)culture.NumberFormat.Clone();    
format.CurrencySymbol = "Kr.";    

现在文化意识解析:

var number = Decimal.Parse(original, NumberStyles.Currency, format);

现在number包含已正确解析的小数。

于 2012-05-15T00:19:08.323 回答