为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
一只萌萌小番薯 2022-10-23 15:02:36
下面的代码工作正常。但是,我想通过Regex.private decimal GetQuarter(string quarter){  var unformattedQuarter = "20" + quarter[2] + quarter[3] + "." + quarter[6];  return Convert.ToDecimal(unformattedQuarter);}输入FY18 Q4FY19 Q1FY19 Q2输出2018.42019.12019.2
查看完整描述

2 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

您可以使用该模式


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.4

2019.1

2019.2

完整的演示在这里

解释


//img1.sycdn.imooc.com//6354e72f000133dc03960168.jpg

注意:添加20似乎有点问题,应谨慎使用



查看完整回答
反对 回复 2022-10-23
?
GCT1015

TA贡献1827条经验 获得超4个赞

使用以下代码,您可以将字符串中第一次和第二次出现的数字提取到一个列表中,然后将它们连接起来:


    string n = "FY18 Q1";

    Regex digits = new Regex(@"[\d]+");   

    var list = digits.Matches(n);

    var finalValue = "20" + list [0] + "." + list [1];


查看完整回答
反对 回复 2022-10-23
  • 2 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信