Вы все, наверное, знаете сочетание клавиш (Shift + Tab) для удаления табуляции или пробела из нескольких строк в различных текстовых редакторах.
Я хочу сделать это с моей строкой в C #.
Я знаю, как сделать это очень неоптимизированным и не очень ошибочным способом. Но есть ли какой-нибудь "легкий" способ сделать это, например с Regex, или каким-то оптимизированным кодом, используемым для использования там?
Но дело в том, чтобы просто удалить одну вкладку с начала.
Некоторые взломали идею кода:
string textToEdit = "Some normal text\r\n" +
"\tText in tab\r\n" +
" Text in space tab\r\n" +
" \t Text in strange tab\r\n" +
"\t\t\tMultiple tabs\r\n" +
" Not quite a tab";
int spacesInTabstop = 4;
string[] lines = textToEdit.Split('\n');
foreach (string line in lines)
{
int charPos = 0;
for (int i = 0; line.Length > 0 && i < spacesInTabstop + charPos; i++)
{
if (line[charPos] == '\t')
{
line = line.Remove(0, 1);
break; //Removed tab successfully
}
else if (line[charPos] == ' ')
{
line = line.Remove(0, 1); //Remove one of four spaces
}
else if (char.IsWhiteSpace(line[charPos]))
{
charPos++; //Character to ignore
}
else
break; //Nothing to remove anymore
}
}
textToEdit = string.Join("\n", lines);
Выходные данные должны быть:
Some normal text
Text in tab
Text in space tab
Text in strange tab
Multiple tabs
Not quite a tab