【问题标题】:C# RegEx to extract a value from a string [duplicate]C# RegEx 从字符串中提取值[重复]
【发布时间】:2017-05-12 08:23:52
【问题描述】:

有人可以帮助我使用 RegEx c# 从以下字符串中提取价格吗?我尝试了几个示例,但似乎无法完成,我知道这是非常基本的,但我无法做到。

我找不到逃脱的方法:和“。

字符串: "ouioieu":"Canister","price":"59.0000","sku":"DECC500","barcode_gtin sjh

预期值:59.0000

我需要完整的代码块,因为一旦工作,我将在其他地方使用相同的方法。

(为什么由于类似的答案用双引号标记为重复?但是这个,主要问题是冒号,我需要一个完整的答案并且已经收到。)

【问题讨论】:

  • 你试过什么?您不需要正则表达式,只需剪切“,”然后“:”
  • 这看起来像JSON... 不要regex 用于JSON
  • 最好使用 json 解析器

标签: c# regex


【解决方案1】:

作为免责声明,您的数据看起来很像 JSON 的片段。如果是这样,您应该考虑使用 JSON 解析器从中提取内容。假设您绝对需要在这里使用正则表达式,然后考虑模式:

.*"price":"(.*?)"

这将捕获 price 之后的所有内容。这是一个示例代码:

string str = @"""ouioieu"":""Canister"",""price"":""59.0000"",""sku"":""DECC500"",""barcode_gtin sjh""";
var m = Regex.Match(str,@".*""price"":""(.*?)"".*");
Console.WriteLine(m.Groups[1].Value);

输出:

59.0000

演示在这里:

Rextester

【讨论】:

  • 工作正常...谢谢。
  • 我们如何访问月份和日期的值 (?\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \s)(?\d{1,2})
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-24
  • 2019-10-13
  • 2020-03-30
  • 1970-01-01
  • 2023-01-07
  • 2017-02-02
相关资源
最近更新 更多