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

本文关键字:一个 字符串 获取 | 更新日期: 2023-09-27 18:15:48

我需要从现有字符串中提取一个子字符串。这个字符串以无趣的字符(包括"," "空格"和数字)开始,以",123,"或",57 "或类似的数字可以改变的地方结束。我只需要数字。由于

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

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'
}

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

源代码(稍作修改):仅用于数字的Regex

我想这就是你要找的:

使用Regex

从字符串中删除所有非数字字符
using System.Text.RegularExpressions;
...
string newString = Regex.Replace(oldString, "[^.0-9]", "");

(如果不希望在最终结果中使用小数分隔符,请删除。

试试这样:

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

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

所以你的代码应该是
var lst=Regex.Matches(inp,reg)
             .Cast<Match>()
             .Select(x=x.Value);

lst现在包含了所有的数字


但如果你的输入与你的问题提供的相同,你不需要regex

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