如何使用 REGEX 将提供为“FY18 Q1”的季度转换为 C# 中的“2018.4”?

下面的代码工作正常。但是,我想通过Regex.


private decimal GetQuarter(string quarter)

{

  var unformattedQuarter = "20" + quarter[2] + quarter[3] + "." + quarter[6];

  return Convert.ToDecimal(unformattedQuarter);

}

输入


FY18 Q4

FY19 Q1

FY19 Q2


输出


2018.4

2019.1

2019.2


一只萌萌小番薯
浏览 117回答 2
2回答

30秒到达战场

您可以使用该模式FY(\d{2}) Q(\d)并将匹配替换为20$1.$2例子var input = @"FY18 Q4\r\nFY19 Q1\r\nFY19 Q2";var pattern = @"FY(\d{2}) Q(\d)";var replacement = "20$1.$2";Console.WriteLine(Regex.Replace(input, pattern, replacement));输出2018.42019.12019.2完整的演示在这里解释注意:添加20似乎有点问题,应谨慎使用

GCT1015

使用以下代码,您可以将字符串中第一次和第二次出现的数字提取到一个列表中,然后将它们连接起来:    string n = "FY18 Q1";    Regex digits = new Regex(@"[\d]+");       var list = digits.Matches(n);    var finalValue = "20" + list [0] + "." + list [1];
打开App,查看更多内容
随时随地看视频慕课网APP