有没有办法使用标准.NET工具将字符串从左和右裁减为第一个数字?或者我需要编写自己的函数(并不困难,但我宁愿使用标准方法)。我需要为提供的输入提供以下输出:
Input Output
-----------------------
abc123def 123
;'-2s;35(r 2s;35
abc12de3f4g 12de3f4
答案 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);
}
我认为这会奏效。