Убрать лишние пробелы, если их несколько - PullRequest
3 голосов
/ 01 июня 2009

Я после выражения Regex, которое уберет пробелы, если есть два или более повторов, оставив только один пробел.

Например, эта строка

The cow  jumped    over the moon

с несколькими пробелами, разделяющими слова, в некоторых случаях станет

The cow jumped over the moon

Ответы [ 4 ]

15 голосов
/ 01 июня 2009
string cleanedString = Regex.Replace(input, @"\s+", " ");
8 голосов
/ 01 июня 2009

Попробуйте это регулярное выражение:

[ ]+

и замените его одним пробелом.

0 голосов
/ 01 июня 2009

Я делаю это все время с помощью sed.

$ echo "The cow  jumped    over the moon" | sed -e 's/[     ]\+/ /g'
The cow jumped over the moon

В квадратных скобках класса символов у вас есть пробел и символ табуляции. Я цитировал «+» с помощью «\», что может не понадобиться, если ваш движок регулярных выражений принимает «+» вместо «один или более» вместо буквального «+».

0 голосов
/ 01 июня 2009

Я обычно делаю это несколько раз, заменяя два пробела одним, пока больше не будет найдено записей. Это, конечно, означает несколько проходов и несколько раундов замен с каждым раундом выделения и сбора мусора строки, но я обнаружил, что накладные расходы значительно меньше, чем анализ и выполнение регулярного выражения Даже с 64 пробелами требуется всего 7 проходов, чтобы исправить. Кроме того, типичные строки имеют только 2-5 пробелов, поэтому они работают еще быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...