การลบบรรทัดว่างใน Notepad ++


384

ฉันจะแทนที่บรรทัดว่างใน Notepad ++ ได้อย่างไร ฉันลองค้นหาและแทนที่ด้วยบรรทัดว่างในการค้นหาและไม่มีอะไรในการแทนที่ แต่มันไม่ทำงาน มันอาจต้องการ regex

คำตอบ:


395

คุณต้องการบางสิ่งบางอย่างเช่นการแสดงออกปกติ

คุณต้องอยู่ในExtendedโหมด

หากคุณต้องการทุกสายที่จะจบลงในบรรทัดเดียว\r\nใช้ หากคุณต้องการลบบรรทัดว่างให้ใช้\n\r@Link ในตอนแรกแนะนำ

แทนที่การแสดงออกอย่างใดอย่างหนึ่งโดยไม่มีอะไร


21
ควรเลือก 'ขยาย' ในโหมดการค้นหาก่อน
q0987

14
ที่จะได้รับสายของคุณไม่ได้ที่จะร่วมกันคุณจะต้องค้นหาและแทนที่ด้วย\r\n\r\n \r\n
Robert Kaucher

1
ดูความคิดเห็นของ @ BoltClock ด้านล่าง นอกจากนี้หากไฟล์ของคุณถูกบันทึกด้วยจุดสิ้นสุดบรรทัด Unix คุณสามารถแปลงเป็นปลายสายของ Windows ในการแก้ไข> การแปลง EOL> รูปแบบ Windows ก่อนทำการค้นหาและแทนที่
บิ๊ก McLargeHuge

9
หากคุณต้องการลบบรรทัดที่มีช่องว่างและแท็บเท่านั้นหรือไม่มีอะไรลองใช้ regex แทนที่เพื่อจับคู่\r\n\W*\r\nและแทนที่ด้วย\r\n
Myster

2
@ ST3 hmm สิ่งที่ฉันคิดว่าอันนี้ดีกว่ามาก: (\r\n|\r|\n)(\s*(\r\n|\r|\n))+และแทนที่ด้วย\r\nดูในการดำเนินการที่นี่: regex101.com/r/qD9dB1/1
Myster

567

ขณะนี้มีวิธีการในการทำสิ่งนี้ในเวอร์ชัน 6.5.2

Edit -> Line Operations -> Remove Empty Lines หรือ Remove Empty Lines (Containing Blank characters)

สกรีนช็อตของการลบบรรทัดว่าง


น่าเสียดายที่นี่ไม่ได้พิจารณาการเลือกของคุณ แต่จะลบบรรทัดว่างทั้งหมดในไฟล์แม้ว่าคุณจะเลือกเพียงบางบรรทัดเท่านั้น
Fabio พูดว่า Reinstate Monica

หากเป็นการดำเนินการครั้งเดียวคุณสามารถแยกบรรทัดที่เลือกไปยังแท็บ notepad ++ ใหม่และดำเนินการนั้นได้ ขั้นตอนการคัดลอกวางสำหรับ 5 วินาที การแก้ไขปัญหาอื่น ๆ ที่ไม่สามารถทำได้ในเวลานั้นเป็นความคิดของฉันเสีย แต่ถ้าคุณทำอย่างนั้นทุกวัน 100 ครั้ง ...
creed

ฉันใช้สิ่งนี้ (แม้จะกำหนดทางลัดของฉัน) แต่มันช้ากว่าตัวเลือกด้านบนมากดังนั้นใช้อย่างชาญฉลาด ...
Betlista

122

มีปลั๊กอินที่เพิ่มเมนูชื่อ TextFXมีปลั๊กอินที่เพิ่มเมนูที่มีชื่อว่าเป็นเมนูนี้มีตัวเลือกการแก้ไขข้อความด่วนที่หลากหลายซึ่งทำให้ผู้ใช้สามารถทำการเปลี่ยนแปลงรหัสได้อย่างรวดเร็ว ในเมนูนี้คุณสามารถค้นหาสิ่งที่เลือกเช่น Drop Quotes, Delete Lines, Blank, Unwrap และ Rewrap Text

ทำดังต่อไปนี้:

TextFX > TextFX Edit > Delete Blank Lines
TextFX > TextFX Edit > Delete Surplus Blank Lines

7
ไม่แน่ใจว่าเมื่อใด แต่ดูเหมือนว่าปลั๊กอินนี้จะถูกติดตั้งเป็นค่าเริ่มต้นทันที นอกหัวข้อเล็กน้อย แต่หนึ่งในคุณสมบัติที่มีประโยชน์อื่น ๆ อย่างไม่น่าเชื่อภายใต้TextFX > TextFX Toolsคือการจัดเรียงบรรทัด วิธีที่มีประโยชน์มากในการทำ Unix sort -uบนกล่อง Windows โดยไม่ต้อง cygwin หรือ unxutils หรือคล้ายกัน
Cam Jackson

3
นี่คือลิงค์ไปยังปลั๊กอิน TextFx ฉันพบว่ามันมีประโยชน์มาก ใช้: Settings > Import > plugin...และค้นหาไฟล์ dll เพื่อติดตั้ง มันจะกลายเป็นรายการเมนูโดยPlugins
Nicholas Pickering

1
จะใช้งานได้กับเอกสารที่เปิดอยู่ทั้งหมดหรือทีละเอกสาร?
Derelict

76
  1. Notepad ++
  2. Ctrl-H
  3. เลือกนิพจน์ปกติ
  4. ใส่^[ \t]*$\r?\nลงไปในการค้นหาสิ่งที่ออกมาแทนที่ว่าง ซึ่งจะตรงกับทุกบรรทัดที่ขึ้นต้นด้วย white space และลงท้ายด้วย carriage return (ในกรณีนี้ windows crlf)
  5. คลิกที่ปุ่มค้นหาถัดไปเพื่อดูตัวเองว่ามันตรงกับเพียงบรรทัดว่าง

1
ฉันต้องใช้วิธีนี้แทนวิธีอื่นเพื่อให้มันทำงานได้ง่ายในมาโคร ขอบคุณ.
Mafu Josh

5
แม้จะสั้นกว่าและแทนที่น้อยกว่าที่ต้องการเนื่องจากบรรทัดว่างหลายบรรทัดจะถูกแทนที่ในครั้งเดียว: ^ \ s * $ \ r? \ n
njank

30
  1. กดctrl + h (ทางลัดสำหรับแทนที่)
  2. ในการค้นหาโซนพิมพ์^\R(สำหรับบรรทัดว่างที่แน่นอน) หรือ^\h*\R(สำหรับบรรทัดว่างที่มีช่องว่างเท่านั้น)
  3. ปล่อยให้แทนที่ด้วยโซนที่ว่างเปล่า
  4. ตรวจสอบรอบตัดตัวเลือก
  5. เลือกโหมดค้นหานิพจน์ปกติ
  6. คลิกที่แทนที่ทั้งหมดปุ่ม

ป้อนคำอธิบายรูปภาพที่นี่


1
สิ่งนี้ใช้ได้สำหรับฉันโดยไม่มีปัญหาหรือการตั้งค่าเพิ่มเติมที่จะเปลี่ยนแปลง ขอบคุณ!
Bonez024

19

คุณสามารถทำตามเทคนิคดังที่แสดงในภาพหน้าจอต่อไปนี้:

  • หาอะไร: ^\r\n
  • แทนที่ด้วย: keep this empty
  • ค้นหาโหมด: Regular expression
  • ล้อมรอบ:เลือกแล้ว

ป้อนคำอธิบายรูปภาพที่นี่

หมายเหตุ:สำหรับไฟล์ * nix ให้ค้นหาโดย\n


17

สิ่งนี้ใช้ได้กับฉัน:

  1. กดctrl + h( ปุ่มลัดเพื่อแทนที่)
  2. เขียน regex หนึ่งในfind whatกล่อง ต่อไปนี้ [\n\r]+$หรือ^[\n\r]+
  3. เว้นReplace withช่องว่างไว้
  4. ในSearch ModeเลือกRegex
  5. คลิกที่Replace All

    เสร็จสิ้น!

นี่เป็นทางออกเดียวที่ไม่ได้เพิ่มไฟล์. csv ขนาดใหญ่ของฉัน ขอบคุณ!
veuncent

1
บวกหนึ่งเพราะในที่สุดฉันก็รู้ทางลัดสำหรับการแทนที่ :-D
Betlista

14

ในแผ่นจดบันทึก ++ กด CTRL + H ในโหมดค้นหาให้คลิกปุ่มตัวเลือก "ขยาย (\ n, \ r, \ t ... )" จากนั้นพิมพ์ลงในช่อง "ค้นหาอะไร": \ r \ n (ย่อมาจาก CR LF ) และปล่อยให้ช่อง "แทนที่ด้วย" ว่างเปล่า ..

ในที่สุดก็โดนแทนที่ทั้งหมด


ที่จริงฉันลองดูคำอธิบายของฉันในคำตอบของฉัน คุณกำลังจะทำอะไรบางอย่าง!
แบรด

3
นี้จะถือว่าจบบรรทัดเป็น Windows (CRLF) \nแต่ถ้าไฟล์ของคุณถูกบันทึกด้วยระบบปฏิบัติการยูนิกซ์ตอนจบบรรทัดค้นหาเฉพาะ
BoltClock

@ แบรด: ฉันเขียนในระหว่าง () "ย่อมาจาก CR LF" ไม่ต้องการ codetrek ที่จะคิดว่า \ n คือ CR ดังนั้นการแก้ไข
Bassem

คำตอบที่ไม่ถูกต้องทำให้ทุกบรรทัดในหนึ่งบรรทัด
m0skit0

12

ฉันไม่แน่ใจเกี่ยวกับ regex หรือสถานการณ์ของคุณ ..

วิธีการเกี่ยวกับ CTRL + A เลือกเมนู TextFX -> แก้ไข TextFX -> ลบบรรทัดว่างเปล่าและวิโอลาบรรทัดว่างทั้งหมดหายไป

หมายเหตุด้านข้าง - หากบรรทัดว่างเปล่าเช่นไม่มีช่องว่างสิ่งนี้จะใช้งานได้



11

Ctrl + H

ค้นหา - \ r \ r แทนที่ด้วย - \ r


ใช้งานได้สำหรับฉันโดยลบบรรทัดพิเศษออกในแง่ของการหา double \ r แทนที่ด้วย single \ r ขอบคุณ !!
genpet

สิ่งนี้ทำงานได้ดี แต่ฉันพบว่าฉันต้องเรียกใช้หลายครั้งในเอกสารของฉันก่อนที่อินสแตนซ์ทั้งหมดของ \ r \ r หายไป ฉันไม่แน่ใจว่าทำไม
Hawkwing

7

สิ่งนี้ไม่สามารถใช้งานได้หากบรรทัดว่างมีแท็บหรือช่องว่าง หน้าเว็บหลายแห่ง (เช่นhttp://www.guardian.co.uk/ ) มีเส้นสีขาวเหล่านี้อันเป็นผลมาจากการแก้ไข HTML ที่ผิดพลาด

ลบ white space โดยใช้นิพจน์ทั่วไปดังต่อไปนี้:

รูปแบบการเปลี่ยนแปลง: [\ t] + $ เป็นอะไรเลย

โดยที่ [\ t] ตรงกับแท็บหรือช่องว่าง '+' ตรงกับเหตุการณ์หนึ่งเหตุการณ์ขึ้นไปและ '$' ทำเครื่องหมายจุดสิ้นสุดของบรรทัด

จากนั้นใช้ notepad ++ / textFX เพื่อลบบรรทัดว่างหนึ่งบรรทัดหรือมากกว่านั้น ตรวจสอบให้แน่ใจว่าบรรทัดว่างเหล่านี้ไม่มีนัยสำคัญในบริบทที่กำหนด


5

ป้อนคำอธิบายรูปภาพที่นี่

บางครั้ง \ n \ r ฯลฯ ไม่ทำงานที่นี่เพื่อคิดออกสิ่งที่การแสดงออกปกติของคุณควรจะเป็น

ข้อดีของเคล็ดลับนี้: หากคุณต้องการแทนที่ในหลายไฟล์พร้อมกันคุณต้องใช้วิธีนี้ ด้านบนจะไม่ทำงาน ...


5

1) Ctrl + H(หรือSearch 🠆 Replace..) เพื่อเปิดหน้าต่างแทนที่

2) เลือก'Search Mode' 'การแสดงออกปกติ'

3) ใน'ค้นหาอะไรประเภท^(\s*)(.*)(\s*)$และใน'แทนที่ด้วย'ประเภท\2

  • ^ - จับคู่จุดเริ่มต้นของอักขระบรรทัด
  • (\s*) - จับคู่อักขระเว้นวรรค
  • (.*) - จับคู่อักขระใด ๆ
  • (\s*) - จับคู่อักขระเว้นวรรคว่าง
  • $ - จับคู่ส่วนท้ายของอักขระบรรทัด
  • \2 - หมายถึงการแข่งขันที่ตรงกันของวงเล็บที่ 2

ป้อนคำอธิบายรูปภาพที่นี่ ดู https://www.rexegg.com/regex-quickstart.htmlสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ regex


4
  1. แก้ไข >> การทำงานว่างเปล่า >> ตัดส่วนนำหน้าและต่อท้ายช่องว่าง (เพื่อลบแท็บสีดำและช่องว่างในบรรทัดว่าง)
  2. Ctrl + Hเพื่อรับหน้าต่างแทนที่และแทนที่รูปแบบ: ^\r\nไม่มีอะไร (เลือกนิพจน์ทั่วไป)

หมายเหตุ:ขั้นตอนที่ 1 จะลบรหัสที่คุณตั้งใจทำผ่านแท็บและช่องว่าง


4

CTRL + A เลือกเมนู TextFX -> แก้ไข TextFX -> ลบบรรทัดว่างตามที่แนะนำด้านบน

แต่ถ้าบรรทัดมีช่องว่างให้เลื่อนเคอร์เซอร์ไปที่บรรทัดนั้นแล้วทำ CTRL + H ส่วน "ค้นหาอะไร:" จะแสดงพื้นที่ว่างและในส่วน "แทนที่ด้วย" ให้ปล่อยว่างไว้ ตอนนี้ช่องว่างทั้งหมดจะถูกลบและตอนนี้ลอง CTRL + A เลือกเมนู TextFX -> แก้ไข TextFX -> ลบบรรทัดว่าง


4

/n/rถือว่าเป็นตัวแบ่งบรรทัดประเภทเฉพาะ หากต้องการกำหนดเป้าหมายบรรทัดว่างใด ๆ คุณสามารถใช้:

^$

สิ่งนี้บอกว่า - บรรทัดใด ๆ ที่เริ่มต้นและลงท้ายด้วยไม่มีอะไรระหว่าง นี่เป็นสิ่งที่ดึงดูดมากกว่า แทนที่ด้วยสตริงว่างเปล่าเดียวกัน


3

ฉันไม่เห็นคำตอบที่รวมกันดังนั้นค้นหา ^ \ s + $ และแทนที่ด้วย {nothing}

^\s+$ means
  ^ start of line
  \s+ Matches minimum one whitespace character (spaces, tabs, line breaks)
  $ until end of line

ถ้าคุณต้องการหลายบรรทัดคุณสามารถลอง: และแทนที่ด้วย^\s+^(\S) \1
jiggunjer


1

ทางเลือกที่ง่ายสำหรับการลบพื้นที่สีขาวออกจากบรรทัดว่าง:

  1. TextFX> TextFX Edit> Trim Trailing Spaces

การดำเนินการนี้จะลบช่องว่างต่อท้ายทั้งหมดรวมถึงช่องว่างต่อท้ายในบรรทัดว่าง ตรวจสอบให้แน่ใจว่าไม่มีช่องว่างต่อท้ายที่สำคัญ


0

นิพจน์ด้านบนและนิพจน์ส่วนขยายไม่ทำงานสำหรับฉัน แต่นิพจน์ทั่วไป "$ \ n $" ทำ


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.