【问题标题】:Extract post numeric value from a string [closed]从字符串中提取后数值[关闭]
【发布时间】:2017-09-19 16:27:39
【问题描述】:

我想从“KB”获取帖子数字(实际数据大小) 例如

string word1="Product data 5KB per second" 
string word2="Product data is 5 KB per hour"

如果我通过KB,我想从上面的单词中提取5

【问题讨论】:

  • 一个字符串可以有很多KB?
  • 你试过了吗?
  • @Amit 我的字符串中只有 1 KB
  • 为什么在“Product data is”和“KB”之间找不到文字?
  • @Amit:第一个例子说 “产品数据” 而不是 “产品数据是”

标签: c# asp.net linq


【解决方案1】:

这个正则表达式应该可以工作

var word2Size = Regex.Match(word2, @"\d+(?=\s?KB)").Value;

或浮点数

var word2Size = Regex.Match(word2, @"\d+\.?\d+(?=\s?KB)").Value;

它应该在可选空格之前返回一个数值,后跟 KB

您可以为不同的后缀生成一个正则表达式字符串:

string regexString = String.Format(@"\d+\.?\d+(?=\s?{0})", mySuffix);
var word2Size = Regex.Match(word2, regexString).Value;

【讨论】:

  • 这是一个:D,在模式之前尝试先行,但对于浮点,第二个数字组应该与“。”一样可选。因为 + 是一个或多个 \d+\.?\d*
  • 谢谢兄弟,它的工作
  • 很高兴为您提供帮助 - 对于任何有类似问题的人,您应该将答案标记为正确
猜你喜欢
  • 2018-05-13
  • 2021-07-04
  • 2015-10-04
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
相关资源
最近更新 更多