C # - заменить новую строку точкой с запятой

1

С С# я пытаюсь использовать регулярные выражения для замены новой строки (\n) в текстовом файле точкой с запятой (;), но только если в этой строке есть какой-либо контент;

Если текстовый файл:

This is the program

Hello World

Тогда мое возвращение было бы

This is the program;

Hello World;

Я пытаюсь использовать

my_str = Regex.Replace(val, "\n", ";");

Но это влияет и на линии без контента.

Теги:

2 ответа

3
Лучший ответ

Попробуйте захватить символы 1+, а затем новую строку?

(.+)[\r\n]?
\1;\n

С#:

my_str = Regex.Replace(val, "(.+)[\r\n]?", "$1;\n");
  • 0
    \ 1 дает мне нераспознанную escape-последовательность
  • 0
    @MarceloCamargo попробовать $1 не \1 ?
0

Я думаю, что что-то вроде этого будет работать.

my_str = Regex.Replace(val, "(?<prev>.+)\\n", "${prev};\\n");
  • 0
    используйте \ r \ n, если текст содержит это

Ещё вопросы

Сообщество Overcoder
Наверх
Меню