Regex заменяет все символы новой строки запятой

Как с помощью регулярного выражения заменить каждый символ новой строки (\n) запятой (,)?

Как это:

Demetrius Navarro
Tony Plana
Samuel L. Jackson

To:

Demetrius Navarro,Tony Plana,Samuel L. Jackson

Не в конкретном языке программирования, а просто в стандартном регулярном выражении. Что-то вроде этого:

(.*)
$1
//This just takes the whole string and outputs it as is, I think

person userBG    schedule 16.01.2012    source источник
comment
Если все, что вы хотите сделать, это заменить один символ другим, я предлагаю вам просто использовать метод замены строки, а не регулярное выражение.   -  person aevanko    schedule 16.01.2012
comment
Обратите внимание, что регулярное выражение имеет разные вкусы, поэтому я сомневаюсь, что вам будет достаточно стандартного регулярного выражения.   -  person aevanko    schedule 16.01.2012
comment
Я использую это в программе Windows, а не в программировании.   -  person userBG    schedule 16.01.2012
comment
Я мог бы использовать и код С#, но чистое регулярное выражение было бы предпочтительнее.   -  person userBG    schedule 17.01.2012
comment
@Issun Я думаю, что программа принимает регулярное выражение в стиле perl   -  person userBG    schedule 17.01.2012
comment
Ofko, обратите внимание, что StackOverflow предназначен для вопросов по программированию. Вы можете легко найти это в Google или проверить документацию по вашему программному обеспечению.   -  person Alex Turpin    schedule 17.01.2012
comment
Ну, я думаю, что это актуально, потому что регулярное выражение находится в сфере программирования, и я до сих пор не понял, как это сделать только с регулярным выражением. Я решил использовать С#, который отлично работает.   -  person userBG    schedule 17.01.2012


Ответы (2)


Чтобы соответствовать всем символам новой строки, /\n/g. Для того, чтобы их заменить, нужно указать язык. Например, в JavaScript:

str.replace(/\n/g, ",");

Живой пример

Простой поиск в Google показывает, как это делается в C#:

Regex.Replace(str, "\n", ",");

Прочитав некоторые из ваших комментариев, я искал, как это сделать в Perl. Это должно сделать это:

s/\n/,/g;
person Alex Turpin    schedule 16.01.2012
comment
@ Xeon06 именно это я и сделал - person userBG; 17.01.2012
comment
Мне пришло в голову, что я могу попробовать C#, поэтому я погуглил, нашел функцию, попробовал ее, и она сработала. - person userBG; 17.01.2012
comment
Пример Perl не сработал, но спасибо за ваше предложение, которое привело меня к решению. - person userBG; 17.01.2012
comment
Я понимаю. Если какие-либо ответы помогли решить вашу проблему, не забудьте отметить их как ответы на свой вопрос, щелкнув зеленую галочку рядом с ним. - person Alex Turpin; 17.01.2012

/\n/\,/

В Vim: :%s/\n/\,/g или с пробелом после запятой (как принято): :%s/\n/\,\ /g

Раздражает 30 символов ответа :)

person Rook    schedule 16.01.2012
comment
Во-первых, это регулярное выражение. Программа Windows ... ? Не могли бы вы быть немного более конкретным? - person Rook; 17.01.2012
comment
Это было здорово! Не было ничего страшного в том, чтобы загрузить Vim только для форматирования моего списка :) - person Manu Järvinen; 27.12.2017