2012-01-16 14 views
10

W przypadku wyrażenia regularnego w jaki sposób zastąpić każdy znak nowej linii (\ n) przecinkiem (,)?Regex zamień wszystkie znaki nowego wiersza przecinkiem

Jak to:

Demetrius Navarro 
Tony Plana 
Samuel L. Jackson 

Do:

Demetrius Navarro,Tony Plana,Samuel L. Jackson 

Nie w szczególności programowania lang, tylko standard regex. Coś takiego:

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

Jeśli wszystko, co chcesz zrobić, to zastąpić jedną postacią drugą, sugeruję po prostu użyć metody zamiany ciągów, a nie wyrażeń regularnych. – aevanko

+0

Należy pamiętać, że regex ma różne smaki, więc wątpię, że "zwykłe standardowe wyrażenie" będzie dla ciebie wystarczające. – aevanko

+0

Używam tego w programie windows, a nie w programowaniu. – ofko

Odpowiedz

10

Aby dopasować wszystkie znaki nowej linii, /\n/g. Aby je zastąpić, musisz podać język. Na przykład, w javascript:

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

Live example

Proste wyszukiwanie Google ujawnia how it's done in C#:

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

Po przeczytaniu niektórych komentarze, szukałem jak to zrobić w Perlu. This should do it:

s/\n/,/g; 
+0

+1 za preferowanie prostego zastępowania ciągów znaków –

+0

OK, a co z C#? – ofko

+0

@ofko Zaktualizowany post dla C#. –

2
/\n/\,/ 

w vim: :%s/\n/\,/g lub z miejsca po przecinku (jak to jest w zwyczaju): :%s/\n/\,\ /g

denerwuje 30 znaków na odpowiedź :)

+0

Używam programu Windows. To zajmie kod C# lub Regex – ofko

+1

Pierwszą rzeczą jest "regex". Program Windows ...? Czy mógłbyś być bardziej konkretny? – Rook

+0

To było świetne! Nie było nic ważnego, żeby Vima zapraszać tylko do formatowania mojej listy :) –