@PolyThinker Хотя я вижу этот ответ очень много на этот вопрос, по-моему, это нехорошее решение. Редактор по-прежнему считает, что он должен быть отступом полностью влево - проверьте это, нажав == на строку, начинающуюся с хэша, или нажав =, пока блок кода с комментариями в нем подсвечен для повтора.
Я настоятельно рекомендую filetype indent on
и удалять строки set smartindent
и set autoindent
(или set cindent
) из вашего vimrc. Кто-то еще (по-видимому, Дэвид Бустос) был достаточно любезен, чтобы написать полный парсер для отступов для нас; он находится в $ VIMDIRECTORY / indent / python.vim.
(решение Paul cindent
, вероятно, работает для python, но filetype indent on
гораздо более полезно.)
Вам нужно использовать регулярное выражение?
return new String(input.Where(Char.IsDigit).ToArray());
Есть ли у вас что-то против Replace
?
return Regex.Replace(input, @"[^0-9]+", "");
Вы хотите заменить /\D/
(не цифра) на ''
(пустая строка)
Regex r = new Regex(@"\D");
string s = Regex.Replace("(123) 455-2344", r, "");
Или, более кратко:
string s = Regex.Replace("(123) 455-2344", @"\D",""); //return only numbers from string
Просто удалите все не-цифры:
var result = Regex.Replace(input, @"\D", "");
В Perl (вы можете адаптировать это к C #) просто выполните
$str =~ s/[^0-9]//g;
Я предполагаю, что ваша строка находится в $ str. Основная идея заключается в замене всех не цифр на '' (то есть на пустую строку)