簡體   English   中英

如何在C#中獲取字符串的最后3位數字

[英]How do I fetch last 3 digits of a string in c#

我怎么能得到這個string最后三位數

var myString = "77441-Megrhfj654JHK";

您可以嘗試使用正則表達式來連續獲取最后3位數字:

  using System.Text.RegularExpressions;

  ...

  var myString = "77441-Megrhfj654JHK";

  // Exactly 3 digits while start matching from the right
  string digits = Regex.Match(myString, "[0-9]{3}", RegexOptions.RightToLeft).Value;

  Console.WriteLine(digits);

結果:

  654

非常簡單的LINQ示例

public static class StringExtensions
{
    public static string GetLastDigits( this string source, int count )
    {
        return new string( source
            .Where(ch => Char.IsDigit(ch))
            .Reverse()
            .Take(count)
            .Reverse()
            .ToArray());
    }
}

請參閱.net小提琴上的工作示例

在C#8中,可以使用范圍myString[^3..];

假設輸入字符串采用固定格式:

var lastThree = myString[^6..^3];

或者,在較舊的C#版本中:

var lastThree = myString.Substring(13, 3);

對於任何地方的最后三個數字,類似:

var digits = new string(myString.Where(char.IsDigit).ToArray());
var lastThree = digits[^3..];
var myString = "77441-Megrhfj654JHK";
var digits = Regex.Match(myString, "[0-9]").Value;
return digits.Substring(Math.Max(digits.Length - 3,0));

暫無
暫無

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

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