Хобрук: Ваш путь к мастерству в программировании

Регулярное выражение для удаления возврата каретки с последующим пробелом

Относительно новичок в регулярном выражении, но надеюсь, что кто-то может помочь. Хотя я видел множество примеров того, как удалить определенные символы или комбинации символов, я не могу заставить следующее работать на меня.

У меня есть файл со следующими строками:

a b c
d
ef
 g h
i

Что мне нужно, так это получить строку, которая удаляет точное появление новой строки и пробела (и только это), поэтому результат будет

a b c
d
efg h
i

Прямо сейчас у меня есть

string contents = File.ReadAllText("input.text");
string result = Regex.Replace(contents,@"[\n \r]\ ","");
Console.WriteLine(result);

но это только удаляет пробел перед строкой g h, а не объединяет его с предыдущей строкой.

Что я делаю не так?

21.02.2014

  • Пожалуйста, не включайте языковой тег в заголовок, если без него он не имеет смысла. Теги служат этой цели. 21.02.2014
  • Чем, буду помнить в будущем. 21.02.2014

Ответы:


1
string text = Regex.Replace( contents, @"(\r|\n)+^ +", "" , RegexOptions.None | RegexOptions.Multiline );

Мой читается как:

Одно или несколько совпадений \r или \n (символы новой строки) --> "(\r|\n)+"

за которым следует начало строки --> "^"

с последующим одним или несколькими пробелами --> "+"

21.02.2014

2

Попробуйте использовать:

string result = Regex.Replace(contents,@"(?s)(?:(?:\r|\n)+ +)","");

(?s) Использовать однолинейный режим.

21.02.2014
  • Спасибо, но это дает точно такой же результат: пробел перед g удаляется (как и должно быть), но g h по-прежнему находится на отдельной строке, а мне нужно, чтобы он был «перемещен вверх» и добавлен к тому, что перед ним, а также . 21.02.2014
  • Спасибо, теперь я вижу, что все по-другому, но тем временем Дерек ниже дал еще одну рабочую альтернативу. Спасибо еще раз. 21.02.2014
  • Новые материалы

    Как я могу подписаться на тему изображений в ROS Matlab и получить изображение RGB?
    Привет, Пожалуйста, как я могу извлечь изображение из сообщения ROS Image, за которым следует imshow? Я уже подписался на правильную тему, но message.getData() дает мне объект..

    Понимание СТРУКТУРЫ ДАННЫХ И АЛГОРИТМА.
    Что такое структуры данных и алгоритмы? Термин «структура данных» используется для описания того, как данные хранятся, а алгоритм используется для описания того, как данные сжимаются. И данные, и..

    Как интегрировать модель машинного обучения на ios с помощью CoreMl
    С выпуском новых функций, таких как CoreML, которые упростили преобразование модели машинного обучения в модель coreML. Доступная модель машинного обучения, которую можно преобразовать в модель..

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

    Технологии и проблемы будущей работы
    Изучение преимуществ и недостатков технологий в образовании В быстро меняющемся мире технологии являются решающим фактором в формировании будущего работы. Многие отрасли уже были..

    Игорь Минар из Google приедет на #ReactiveConf2017
    Мы рады сообщить еще одну замечательную новость: один из самых востребованных спикеров приезжает в Братиславу на ReactiveConf 2017 ! Возможно, нет двух других кланов разработчиков с более..

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..