[英]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.