[英]C#: Extract number out of string, then change comma(,) to dot(.)
我正在使用 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";
}
}
}
如何修改它以提取數字然后用點替換逗號?
String.Replace 是一個選項( text.Replace(",", ".")
)。
最好用正確的 CultureInfo 正確解析數字,而不是用 InvariantCulture 重新格式化它。
這顯然是克朗,所以我們應該使用瑞典文化信息來翻譯它。 首先我們從輸入開始:
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
包含一個已正確解析的小數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.