修剪第一个数字

时间:2013-02-18 18:32:03

标签: c# trim

有没有办法使用标准.NET工具将字符串从左和右裁减为第一个数字?或者我需要编写自己的函数(并不困难,但我宁愿使用标准方法)。我需要为提供的输入提供以下输出:

Input           Output
-----------------------
abc123def       123
;'-2s;35(r      2s;35
abc12de3f4g     12de3f4

3 个答案:

答案 0 :(得分:4)

您需要使用regular expressions

string TrimToDigits(string text)
{
    var pattern = @"\d.*\d";
    var regex = new Regex(pattern);

    Match m = regex.Match(text);   // m is the first match
    if (m.Success)
    {
        return m.Value;
    }

    return String.Empty;
}

如果您想通常使用String.Trim()方法调用此方法,则可以将其设为extension method

static class StringExtensions
{
    static string TrimToDigits(this string text)
    {
        // ...
    }
}

然后你可以这样称呼它:

var trimmedString = otherString.TrimToDigits();

答案 1 :(得分:1)

不,没有内置方式。你必须编写自己的方法才能做到这一点。

答案 2 :(得分:0)

不,我认为没有。方法虽然:

for (int i = 0; i < str.Length; i++)
{
    if (char.IsDigit(str[i]))
    {
        break;
    }
    str = string.Substring(1);
}
for (int i = str.Length - 1; i > 0; i--)
{
    if (char.IsDigit(str[i]))
    {
        break;
    }
    str = string.Substring(0, str.Length - 1);
}

我认为这会奏效。