Преобразование табуляции в пробелы в строке .NET - PullRequest
11 голосов
/ 03 февраля 2009

Я создаю синтаксический анализатор текста, используя регулярные выражения. Мне нужно преобразовать все символы табуляции в строке в символы пробела. Я не могу предположить, сколько пробелов должна содержать вкладка, иначе я мог бы заменить вкладку, скажем, 4 пробелами. Есть ли хорошее решение для этого типа проблемы. Мне нужно сделать это в коде, чтобы я не мог использовать внешний инструмент.

<Ч />

К сожалению, ни один из этих ответов не решает проблему, с которой я столкнулся. Я извлекаю текст из внешних текстовых файлов и не могу предположить, как они были созданы или какая операционная система использовалась для их создания. Я считаю, что длина символа табуляции может варьироваться, поэтому, если при чтении текстового файла я сталкиваюсь с вкладкой, я хочу знать, сколько пробельных символов мне следует заменить.

Ответы [ 12 ]

0 голосов
/ 03 февраля 2009

Вы хотите иметь возможность преобразовать табуляцию в N пробелов? Один быстрый и грязный вариант:

output = input.Replace("\t", "".PadRight(N, (char)" "));

Очевидно, N должно быть определено где-то, будь то пользовательский ввод или другое место в программе.

0 голосов
/ 03 февраля 2009

Вы можете использовать функцию замены:

char tabs = '\u0009';
String newLine = withTabs.Replace(tabs.ToString(), "    ");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...