在c#中获取一个特殊的子字符串

时间:2013-05-29 13:02:09

标签: c# regex string split

我需要从现有字符串中提取子字符串。此字符串以不感兴趣的字符(包括",""空格"和数字)开头,以",123,"结尾。或",57,"或类似的东西,数字可以改变。我只需要数字。 感谢

5 个答案:

答案 0 :(得分:1)

匹配数字的正则表达式:Regex regex = new Regex(@"\d+");

来源(略有修改):Regex for numbers only

答案 1 :(得分:1)

public static void Main(string[] args)
{
    string input = "This is 2 much junk, 123,";
    var match = Regex.Match(input, @"(\d*),$");  // Ends with at least one digit 
                                                 // followed by comma, 
                                                 // grab the digits.
    if(match.Success)
        Console.WriteLine(match.Groups[1]);  // Prints '123'
}

答案 2 :(得分:0)

我认为这就是你要找的东西:

Remove all non numeric characters from a string using Regex

using System.Text.RegularExpressions;
...
string newString = Regex.Replace(oldString, "[^.0-9]", "");

(如果您不想在最终结果中允许小数分隔符,请从上面的正则表达式中删除。)。

答案 3 :(得分:0)

您可以使用\ d +匹配给定字符串中的所有数字

所以你的代码将是

var lst=Regex.Matches(inp,reg)
             .Cast<Match>()
             .Select(x=x.Value);

lst现在包含所有数字


但如果您的输入与问题中提供的相同,则不需要正则表达式

input.Substring(input.LastIndexOf(", "),input.LastIndexOf(","));

答案 4 :(得分:0)

尝试这样的事情:

String numbers =  new String(yourString.TakeWhile(x => char.IsNumber(x)).ToArray());