如何在字符串c#中找到最后一个数字?

时间:2014-03-28 05:13:26

标签: c# .net regex string int

我有一个字符串可以有

之类的值
"1 Of 1"
"2 Of 4"
"8 Of 10"

我想要字符串中最后一个数字的值,即1410

Regex \d+$会有效吗?

7 个答案:

答案 0 :(得分:3)

您可以使用var lastno = input.Split().Last();

答案 1 :(得分:2)

您也可以在没有regex的情况下执行此操作,如下所示:

string s = "1 Of 1"
string[] words = s.Split(' ');
words[words.Length - 1]

回答你的问题,是的,它确实有效。 (虽然,我必须说,Blorgbeard提出了一个优秀的点)

"1 Of 1"  ==> '\d+$' ==> "1"
"1 Of 4"  ==> '\d+$' ==> "4"
"1 Of 10" ==> '\d+$' ==> "10"

答案 2 :(得分:0)

例如,

string value = "8 Of 10";
value = value.Substring(value.IndexOf('f') + 2, value.Length)

答案 3 :(得分:0)

是的,但最后会有点切断!

string[] inputs = new[] {"1 Of 1","2 Of 4", "8 Of 10"};
    foreach (var input in inputs)
       {
         string[] numbers = Regex.Split(input, @"\D+");
         Console.WriteLine("Last Number from input \"{0}\" is: {1}", 
                            input,numbers[numbers.Length-1]);
       }

答案 4 :(得分:0)

您可以使用此代码。它将提供完美的输出。

string str = "10 OF 10";
    int pos = str.IndexOf("F");
    string str1 = str.Substring(pos + 1);
    Console.Write(str1);

答案 5 :(得分:0)

使用此RegEx:

var SearchString = @"8of10";

var x = Regex.Match(SearchString, @"([0-9]+)[^0-9]*$");

if (x.Success && x.Groups.Count > 0)
{
    var foundNumber = x.Groups[1].Captures[0].Value;
}

答案 6 :(得分:0)

**regexp { ([0-9])( |\t)*([a-zA-Z]+)( |t)*([0-9])$} $x A B C D E F** ( tcl)

The value of the last digit will be stored in the variable F.