私はc#を使用しており、次のような文字列があります
-Xyz
--Xyz
---Xyz
-Xyz-Abc
--Xyz-Abc
アルファベットが来るまで先頭の特殊文字を削除したいだけです。注:文字列の途中の特殊文字は同じままです。これを行う最速の方法は何ですか?
string.TrimStart
削除する文字を使用して渡すことができます。
var result = yourString.TrimStart('-', '_');
ただし、これは、削除する特殊文字の数がよく知られていて少ない場合にのみ有効です。
そうでない場合は、正規表現を使用できます。
var result = Regex.Replace(yourString, "^[^A-Za-z0-9]*", "");
私はこの2つの方法を好みます:
List<string> strings = new List<string>()
{
"-Xyz",
"--Xyz",
"---Xyz",
"-Xyz-Abc",
"--Xyz-Abc"
};
foreach (var s in strings)
{
string temp;
// String.Trim Method
char[] charsToTrim = { '*', ' ', '\'', '-', '_' }; // Add more
temp = s.TrimStart(charsToTrim);
Console.WriteLine(temp);
// Enumerable.SkipWhile Method
// Char.IsPunctuation Method (se also Char.IsLetter, Char.IsLetterOrDigit, etc.)
temp = new String(s.SkipWhile(x => Char.IsPunctuation(x)).ToArray());
Console.WriteLine(temp);
}