Этот код выполняет обработку текста.
string text = Regex.Replace(e.Data, "^\\s+$[\\r\\n]*", "", RegexOptions.Multiline);
Этот первый сегмент кода используется для получения любого многострочного ввода, который он получает, и вырезания всех пустых строк, по сути, получения блока текста сбез разрывов между каждой строкой. Это оставляет начальные и конечные пробелы в каждой строке.
^\s+$[\r\n]*
- это регулярное выражение, используемое для удаления пустых строк из входной строки.
^\s+$
Соответствует строке, которая не содержит ничего, кроме пробелов [\r\n]*
Соответствует любому количеству символов новой строки или возвращаемых символов после этой пустой строки.
Второй фрагмент регулярного выражения необходим, потому что в противном случае пара новых строк между двумя строками ввода останется на месте. Обратите внимание, что подобный эффект может быть достигнут с помощью ^\s+$\s*
Демо
if (text.Contains("My Own String:"))
{
combinedOutput = Regex.Split(text, ":")[1].ToString().Trim();
combinedAuth = true;
}
После того, как текст был уменьшен до одной строки, эти строкипроверяются, чтобы увидеть, начинаются ли они с фразы My Own String:
- если они это делают, фраза удаляется через Regex.Split()
путем разбивки на двоеточие. Результирующая строка затем обрезается для удаления начальных и конечных пробелов. Если текст НЕ начинался с My Own String:
, любой начальный или конечный пробел остается без изменений.
if (!(text == "") && !(text == Environment.NewLine) && !(text == " ") && text != null && !(text == "\r\n") && !(text == "\n"))
{
combinedError = text;
}
Текст теперь проверяется. Если ...
!(text == "")
Строка не пуста, и ... !(text == Environment.NewLine)
Строка не состоит только из новой строки (в Unix) илиперевод строки и возврат каретки (в Windows) и ... !(text == " ")
Строка не состоит только из пробела, а ... text != null
Строка не являетсяnull
, и ... !(text == "\r\n")
Строка не состоит из возврата каретки и перевода строки, и ... !(text == "\n")
Текст не состоит исключительно изперевод строки ...
... затем combinedError
устанавливается равным обработанной и проверенной строке. Я считаю, что этот сегмент кода может быть значительно реорганизован;проверка на null
обычно является первым условным оператором, избегающим исключений NullPointerExceptions, а Environment.NewLine
охватывает как \r\n
, так и \n
.