2012-01-16 57 views
10

Với regex, làm cách nào để thay thế mỗi ký tự dòng mới (\ n) bằng dấu phẩy (,)?Regex thay thế tất cả các ký tự dòng mới bằng dấu phẩy

Như thế này:

Demetrius Navarro 
Tony Plana 
Samuel L. Jackson 

Để:

Demetrius Navarro,Tony Plana,Samuel L. Jackson 

Không có trong một chương trình đặc biệt lang, chỉ cần chuẩn regex. Một cái gì đó như thế này:

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

Nếu tất cả những gì bạn muốn làm là thay thế một ký tự bằng một ký tự khác, tôi khuyên bạn chỉ nên sử dụng một phương thức thay thế chuỗi chứ không phải là regex. – aevanko

+0

Xin lưu ý rằng regex có hương vị khác nhau, vì vậy tôi nghi ngờ "chỉ tiêu chuẩn regex" của bạn sẽ là đủ cho bạn. – aevanko

+0

Tôi đang sử dụng điều này trong một chương trình cửa sổ, không phải là một chương trình. – ofko

Trả lời

10

Để khớp với tất cả các ký tự dòng mới, /\n/g. Để thay thế chúng, bạn cần chỉ định ngôn ngữ. Ví dụ, trong JavaScript:

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

Live example

Một tìm kiếm Google đơn giản cho thấy how it's done in C#:

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

Sau khi đọc một số ý kiến ​​của bạn, tôi đã tìm kiếm làm thế nào để làm điều đó trong Perl. This should do it:

s/\n/,/g; 
+0

+1 để thích thay thế chuỗi đơn giản –

+0

Ok, còn C# thì sao? – ofko

+0

@ofko Đã cập nhật bài đăng cho C#. –

2
/\n/\,/ 

Trong Vim: :%s/\n/\,/g hoặc với một không gian sau dấu phẩy (vì nó là phong tục): :%s/\n/\,\ /g

Annoyin' 30 ký tự cho một câu trả lời :)

+0

Tôi đang sử dụng chương trình cửa sổ. Nó sẽ lấy mã C# hoặc Regex – ofko

+1

Điều đầu tiên là "regex". Chương trình Windows ...? Bạn có nói rõ hơn được không? – Rook

+0

Điều này thật tuyệt! Nó không phải là biggie để donwload Vim chỉ để định dạng danh sách của tôi :) –

Các vấn đề liên quan