2015-07-14 19 views
21

Trong Atom, Nếu tôi kích hoạt chế độ regex trên công cụ tìm kiếm và thay thế, nó có thể tìm dòng mới là \n, nhưng khi tôi cố gắng thay thế chúng, chúng vẫn ở đó.Làm cách nào để thay thế dòng mới trong Atom?

Không có cách nào để thay thế chuỗi kéo dài dòng mới trong Atom?

Trả lời

24

Dường như Atom khớp với dòng mới là \r\n nhưng hoạt động không nhất quán khi chỉ thay thế \n mà không có gì.

Vì vậy, các dòng mới dường như khớp với \s+\r\n và chỉ "một nửa" của các kết quả phù hợp với dòng \n.

  • Nếu bạn thay thế \n với một chuỗi, không có gì xảy ra với dòng kết thúc, nhưng các chuỗi được nối vào dòng tiếp theo
  • Nếu bạn thay thế \r với một chuỗi, không có gì xảy ra ở tất cả, nhưng con trỏ những tiến bộ.
+0

Are chắn rằng nó là một vấn đề với động cơ regex Atom như trái ngược vào tệp có chứa các kết thúc dòng khác nhau (và Atom không tạo ra sự khác biệt trực quan)? – axic

+0

Không thực sự quan tâm cho dù vấn đề là trong "động cơ regex Atom". Tìm kiếm và thay thế hoạt động theo những cách kỳ lạ và đáng ngạc nhiên. – djsadinoff

+1

Vâng, bạn không trả lời phần thứ hai của nhận xét của tôi - cụ thể là nó là một lỗi thực sự hoặc một cái gì đó mà không có phản hồi trực quan? Câu trả lời của bạn không hoàn toàn rõ ràng về các biểu thức thực tế được sử dụng - bạn đã thử "\ r? \ N $"? Hoặc có thể thay thế tất cả các lần xuất hiện đầu tiên của \ r bằng \ n bằng cách sử dụng "\ r \ n? $"? – axic

0

Người thuần túy có thể không thích giải pháp của tôi, nhưng bạn cũng có thể biến đổi tìm và thay thế đầu vào thành một hộp văn bản nhiều dòng bằng cách sao chép nội dung với một vài ngắt dòng và dán vào đầu vào tìm/thay thế. Nó sẽ làm việc có hoặc không sử dụng regex.

Ví dụ, bạn có thể sao chép này 3 dòng và dán chúng vào cả hai tìm và thay thế đầu vào:

line 1 
line 2 
line 3 

Bây giờ đầu vào của bạn có số dòng mà bạn cần, bạn có thể thay đổi chúng theo ý muốn (và thêm regex nếu cần).

+1

Không làm việc cho tôi. –

2

Bạn có thể sử dụng backreferencing:

ví dụ: Thay thế dòng trống ba với một dòng trống đơn

Tìm regex: (\ r \ n) {3}

thay thế: $ 1

Bạn có thể chỉ dòng trống đôi với (\ r \ n) { 2} ... hoặc bất kỳ số n dòng trống nào có (\ r \ n) {n}. Và bạn có thể bỏ qua $ 1 và để trống thay thế để xóa hoàn toàn các dòng trống.

Nếu bạn muốn thay thế 3 dòng trống bằng hai, chuỗi thay thế của bạn có thể là $ 1 $ 1 hoặc $ 1 $ 2 (hoặc thậm chí $ 1 $ 3 ... $ 3 $ 3 ... $ 3 $ 2 ...): $ 1 chỉ đề cập đến biểu thức ngoặc tròn đầu tiên \ r \ n; $ 2 với giá trị thứ hai (giống với giá trị đầu tiên, vì vậy $ 1 $ 1 thay thế theo cách tương tự như $ 1 $ 2 vì $ 1 == $ 2). Điều này tổng quát thành n dòng trống.

+0

Tôi nghĩ rằng OP đã cố gắng để thay thế các chuỗi mà span dòng, không trống dòng. – TriskalJM

+0

Điều này thật tuyệt, nhưng mẹo thực sự là sử dụng \ r \ n, điều tôi thấy bất ngờ. cảm ơn! – djsadinoff

3

Đó là alittle hơi muộn để trả lời nhưng tôi sử dụng thuật ngữ sau đây để tìm kiếm và nó hoạt động với Atom v1.19.7 x64

\r?\n|\r 

BR

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