簡體   English   中英

如何使用REGEX將提供為“ FY18 Q1”的季度轉換為C#以生成“ 2018.4”?

[英]How to convert quarter which is provided as “FY18 Q1” to produce “2018.4” in C# using REGEX?

下面的代碼工作正常。 但是,我想通過Regex獲得它。

private decimal GetQuarter(string quarter)
{
  var unformattedQuarter = "20" + quarter[2] + quarter[3] + "." + quarter[6];
  return Convert.ToDecimal(unformattedQuarter);
}

輸入項

2018財年第四季度
19財年第一季度
2018財年第二季度

輸出量

2018.4
2019.1
2019.2

您可以使用模式

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

完整演示在這里


說明

在此處輸入圖片說明

注意 :添加20似乎有點問題,應謹慎使用

使用以下代碼,您可以從字符串中提取數字的第一個和第二個出現位置,然后將它們連接起來:

    string n = "FY18 Q1";
    Regex digits = new Regex(@"[\d]+");   
    var list = digits.Matches(n);
    var finalValue = "20" + list [0] + "." + list [1];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM