有没有办法使用标准 .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);
}
我认为这会奏效。