正则表达式在字符串中删减数字c#

时间:2014-04-14 14:28:58

标签: c# regex string split

我有一个跟随2 - 5的字符串现在我想用Regex C#获得数字5#(我是Regex的新手),你能给我一个想法吗?谢谢

4 个答案:

答案 0 :(得分:2)

您可以简单地使用String.Split方法:

int number = int.Parse("2 - 5".Split('-', ' ').Last());

如果在最后一个数字后面没有空格,这将有效。如果是这样的话,那么:

 int number = int.Parse("2 - 5  ".Split('-', ' ')
              .Last(x => x.Any() && x.All(char.IsDigit)));

答案 1 :(得分:1)

非常简单如下:

'\s-\s(\d)'

并提取第一个匹配组

答案 2 :(得分:1)

@SShashank有权利,但我认为我提供了一些代码,因为你提到你是Regex的新手:

string s = "something 2-5 another";
Regex rx = new Regex(@"-(\d)");
if (rx.IsMatch(s))
{
    Match m = rx.Match(s);
    System.Console.WriteLine("First match: " + m.Groups[1].Value);
}

群组[0]是整个匹配,群组[1]是第一个匹配的群组(parens中的东西)。

答案 3 :(得分:0)

如果你真的想使用正则表达式,你可以简单地做:

string text = "2 - 5";

string found = Regex.Match(text, @"\d+", RegexOptions.RightToLeft).Value;