Эта строка:
Regex regex = new Regex(@"[ ]{2,}", options);
Создает объект регулярного выражения, который будет искать вхождения 2 или более смежных пробелов. [ ]
создает группу символов, которая содержит пробел - она могла бы быть написана как
, но тогда я бы предположил, что она будет менее читаемой {2,}
означает 2 или более (неограниченных) предыдущего символа (или группы символов).
См. этот удобный шпаргалка RegEx для синтаксиса регулярных выражений .NET.
Эта строка находит все такие вхождения и заменяет их одним пробелом:
string outStr = regex.Replace(inStr, @" ");
Функция замены находит все совпадения регулярного выражения в первом строковом параметре и заменяет их второй строкой.
В обоих случаях нет необходимости в буквальном строковом литерале (начиная с @
).