是否有一種方法可以使用標準的.NET工具從左側和右側將字符串修剪爲第一個數字數字?或者我需要編寫自己的函數(不難,但我寧願使用標準方法)。我需要以下輸出爲提供的輸入:修剪到第一個數字
Input Output
-----------------------
abc123def 123
;'-2s;35(r 2s;35
abc12de3f4g 12de3f4
是否有一種方法可以使用標準的.NET工具從左側和右側將字符串修剪爲第一個數字數字?或者我需要編寫自己的函數(不難,但我寧願使用標準方法)。我需要以下輸出爲提供的輸入:修剪到第一個數字
Input Output
-----------------------
abc123def 123
;'-2s;35(r 2s;35
abc12de3f4g 12de3f4
你需要使用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();
不,沒有內置的方式。你將不得不編寫自己的方法來做到這一點。
不,我不覺得有什麼。方法雖然:
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);
}
我認爲這將工作。
這是一個非常優雅的解決方案(雖然不是標準的修剪功能)。非常感謝。 – Daniel 2013-02-18 18:39:29