如何使用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

感谢的帮助

如何使用C#从字符串中分离变量数据

使用正则表达式,结果将在变量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)用替换字符串

替换web的完整性

有很多问题没有得到解答,但你可以简单地做这样的事情。当然,假设格式始终保持不变。:)

        string[] split = web.Split('(');
        string result = "Current Hourly Price: " + split[2].Remove(split[2].Length-1);
        Console.WriteLine(result);

不过,我建议您使用更干净的东西,比如使用编译后的正则表达式。与regex相比,有很多方法可以提高性能,而且在格式(例如)因某种原因发生更改时更容易更新。