0

標準の .NET ツールを使用して、文字列を左と右から最初の数字にトリミングする方法はありますか? または、独自の関数を作成する必要があります (難しくはありませんが、標準的な方法を使用したいと思います)。提供された入力に対して次の出力が必要です。

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

3 に答える 3

4

正規表現を使用する必要があります

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()として作成できます。

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

そして、次のように呼び出すことができます。

var trimmedString = otherString.TrimToDigits();
于 2013-02-18T18:36:52.987 に答える
1

いいえ、組み込みの方法はありません。これを行うには、独自のメソッドを作成する必要があります。

于 2013-02-18T18:33:03.397 に答える
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);
}

これでうまくいくと思います。

于 2013-02-18T18:39:11.383 に答える