是否有任何方法截断字符串的一部分,直到在C#中遇到第一个数字?

Cic*_*ami 2 c# string texttrimming

我想知道在C#中是否有任何方法可以取出字符串的所有内容,直到遇到第一个数字.例:

string myString = "USD3,000";
myString = SomeMethod(myString, [someparameters]);
myString -> "3,000"
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 7

不是内置的,但您可以使用正则表达式,或者IndexOfAny:

static void Main()
{
    string myString = "USD3,000";
    var match = Regex.Match(myString, @"[0-9].*");
    if(match.Success)
    {
        Console.WriteLine(match.Value);
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

static readonly char[] numbers = "0123456789".ToCharArray();
static void Main()
{
    string myString = "USD3,000";
    int i = myString.IndexOfAny(numbers);
    if (i >= 0)
    {
        string s = myString.Substring(i);
        Console.WriteLine(s);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Oskar:这正是问题的问题:"在遇到第一个数字之前取出字符串的所有内容的方法"=>获取第一个数字并匹配所有其余数字 (2认同)