Я конвертирую HTML-код в обычный текст. Но есть много дополнительных возвратов и пробелов. Как их удалить?
Как удалить дополнительные возвраты и пробелы в строке с помощью регулярных выражений?
Ответ 1
Я предполагаю, что вы хотите
- найдите два или более последовательных пробела и замените их одним пробелом, а
- найдите две или несколько строк новой строки и замените их одной новой строкой.
Если это правильно, вы можете использовать
resultString = Regex.Replace(subjectString, @"( |\r?\n)\1+", "$1");
Это сохраняет исходный "тип" пробелов без изменений, а также правильно сохраняет окончание строк Windows. Если вы также хотите "конденсировать" несколько вкладок в один, используйте
resultString = Regex.Replace(subjectString, @"( |\t|\r?\n)\1+", "$1");
Чтобы сконденсировать строку строк и пробелов (любое число каждого) в одну новую строку, используйте
resultString = Regex.Replace(subjectString, @"(?:(?:\r?\n)+ +){2,}", @"\n");
Ответ 2
string new_string = Regex.Replace(orig_string, @"\s", "")
удалит все пробелы
string new_string = Regex.Replace(orig_string, @"\s+", " ")
просто скроет несколько пробелов в один
Ответ 3
Я использовал для этого много алгоритмов. Каждый цикл был хорош, но это было ясно и абсолютно.
//define what you want to remove as char
char tb = (char)9; //Tab char ascii code
spc = (char)32; //space char ascii code
nwln = (char)10; //New line char ascii char
yourstring.Replace(tb,"");
yourstring.Replace(spc,"");
yourstring.Replace(nwln,"");
//by defining chars, result was better.
Ответ 4
Вы можете использовать Trim() для удаления пробелов и возврата. В HTML пространства не важны, поэтому вы можете опустить их с помощью метода Trim() в классе System.String.