標準の .NET ツールを使用して、文字列を左と右から最初の数字にトリミングする方法はありますか? または、独自の関数を作成する必要があります (難しくはありませんが、標準的な方法を使用したいと思います)。提供された入力に対して次の出力が必要です。
Input Output
-----------------------
abc123def 123
;'-2s;35(r 2s;35
abc12de3f4g 12de3f4
正規表現を使用する必要があります
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();
いいえ、組み込みの方法はありません。これを行うには、独自のメソッドを作成する必要があります。
いいえ、ないと思います。ただし方法:
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);
}
これでうまくいくと思います。