如何使用C#从字符串中分离变量数据
本文关键字:分离 变量 数据 字符串 何使用 | 更新日期: 2023-09-27 18:19:51
有人能帮助我改进这部分代码吗?
字符串是这样的:当前小时价格(HOEP):20.09/MWh(2.01¢/kWh)。这是网站上的一行,数据为20.09和2。01 时间内的变化
static void get_HOEP(string web)
{
int x = web.IndexOf("Current Hourly Price");
...
}
我只想显示以下内容:当前小时价格:nbsp;2.01;¢/kWh
感谢的帮助
使用正则表达式,结果将在变量result中。
var source="Current Hourly Price (HOEP): $20.09/MWh (2.01¢/kWh)";
var regex=new Regex(@"Current Hourly Price '(HOEP'): '$'d+'.'d'd/MWh '(('d+'.'d'd)¢/kWh')");
var result=regex.Replace(source,"Current Hourly Price $1 ¢/kWh");
--EDIT——全类版本
public static class PriceParser {
private const string MATCH_STRING = @"Current Hourly Price '(HOEP'): '$'d+'.'d'd/MWh '(('d+'.'d'd)¢/kWh')";
private const string REPLACE_STRING = @"Current Hourly Price $1 ¢/kWh";
private static readonly Regex regex=new Regex(MATCH_STRING,RegexOptions.Compiled);
private static readonly Regex entirePageRegex=new Regex(string.Format("^.*{0}.*$",MATCH_STRING),RegexOptions.Compiled|RegexOptions.Singleline);
public static void get_HEOP1(string web) {
Console.WriteLine(regex.Replace(web,REPLACE_STRING));
}
public static void get_HEOP2(string web) {
Console.WriteLine(entirePageRegex.Replace(web,REPLACE_STRING));
}
}
PriceParser.get_HEOP1(web)
只是替换搜索字符串中的匹配项
PriceParser.get_HEOP2(web)
用替换字符串
有很多问题没有得到解答,但你可以简单地做这样的事情。当然,假设格式始终保持不变。:)
string[] split = web.Split('(');
string result = "Current Hourly Price: " + split[2].Remove(split[2].Length-1);
Console.WriteLine(result);
不过,我建议您使用更干净的东西,比如使用编译后的正则表达式。与regex相比,有很多方法可以提高性能,而且在格式(例如)因某种原因发生更改时更容易更新。