ลบบรรทัดว่างเปล่าในข้อความโดยใช้ Visual Studio


152

วิธีลบบรรทัดว่างใน Visual Studio



2
มีคำตอบสำหรับสิ่งนี้โดยไม่ใช้นิพจน์ทั่วไปหรือไม่? เพียงแค่ใช้ทางลัดเช่น CTRL-KD ซึ่งจัดรูปแบบเอกสาร แต่ลืมที่จะลบบรรทัดว่างสองบรรทัด
ม.ค.

คำตอบ:


174

เนื่องจาก Visual Studio 2012 เปลี่ยนไวยากรณ์ของ regex คำตอบดั้งเดิมโดย Ala จะแปลเป็นข้อความต่อไปนี้ใน VS 2012:

ลบบรรทัดว่างเดียว

เก่า:

^:b*$\n

ใหม่:

^(?([^\r\n])\s)*\r?$\r?\n

Visual Studio 2013 (ขอบคุณ BozoJoe และ Joe Johnston):

^\s*$\n

ลบบรรทัดว่างสองบรรทัด

เก่า:

^:b*\n:b*\n

ใหม่:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\r?\n

ม้วนออกจากลิ้นของคุณ

นี่คือแผ่นงานการแปลงจาก MSDN


13
vs2013: ^ \ s + $ \ n
BozoJoe

สำหรับฉันคำตอบของ BozoJoe ทำงานได้ดีใน VS2012 เช่นกัน (อัปเดต 4)
BertuPG

5
^ \ s + $ \ n เปลี่ยนเป็น ^ \ s * $ \ n อนุญาตสำหรับ (ไม่มีเนื้อหา) ฟีดบรรทัดบริสุทธิ์
โจจอห์นสตัน

4
ฉันจะทำให้เป็นอัตโนมัติได้อย่างไรเช่นทำงานกับ CTRL + K + D
ErTR

สิ่งนี้มีไว้เพื่อทำงานกับสตริงหรือรหัสในเครื่องมือแก้ไขหรือไม่
Kyle Delaney

114

มันมีประโยชน์มากโดยเฉพาะถ้าคุณต้องการจัดเรียงหรือเปรียบเทียบรหัสขอบคุณสำหรับผู้ที่ตอบคำถามนี้ฉันได้รับคำตอบจากที่นี่และต้องการแบ่งปันกับ Stackoverflow:

Visual Studio มีความสามารถในการลบบรรทัดว่างในการแทนที่โดยใช้นิพจน์ทั่วไป

  • คลิกCtrl- H(แทนที่อย่างรวดเร็ว)

  • เลือก "ใช้นิพจน์ปกติ"

  • ในค้นหาระบุ ^$\n

  • ในกล่องแทนที่ลบทุกอย่าง

  • คลิก "แทนที่ทั้งหมด"

บรรทัดว่างทั้งหมดจะถูกลบ

นิพจน์ปกติสำหรับบรรทัดว่างประกอบด้วย

จุดเริ่มต้นของบรรทัด ^

จุดสิ้นสุดของบรรทัด $

ตัวแบ่งบรรทัด \n

โปรดทราบว่าโดยปกติใน Windows จุดสิ้นสุดของบรรทัดที่ระบุโดย 2 อักขระ - Carriage Return (CR, ASCII 13, \r) ฟีดไลน์ (LF, ASCII 10, \n)

regex เพื่อลบบรรทัดที่ว่างเปล่าที่มี / ไม่ได้จริงๆว่างเปล่า (เช่นที่พวกเขาทำ / ไม่ได้มีช่องว่าง): ^:b*$\n

วิธีลบสองบรรทัด: ^:b*\n:b*\nแทนที่ด้วย:\n

* สำหรับ Visual Studio 2013 ขึ้นไป: *

^\s*$\n

และสำหรับเส้นคู่:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\r?\n

ดูการปรับปรุงไวยากรณ์นิพจน์ปกติสำหรับ VS2012 ขึ้นไปในคำตอบของ @ lennart ด้านล่าง


ทำงานได้อย่างมีเสน่ห์ด้วยการทำความสะอาดไฟล์ XML ใน Visual Studio 2015 ใครรู้วิธีสร้างทางลัดเพื่อดำเนินการนี้
Leszek P

1
สำหรับ Visual Studio 2012 ขึ้นไปตรวจสอบคำตอบด้านล่าง
Alaa

1
มีวิธีการนี้ในการทำงานกับตัวจัดรูปแบบอัตโนมัติหรือไม่?
Kyle Delaney

19

ใน Visual Studio 2013 (เวอร์ชัน 12.0.20623.01) ฉันลบบรรทัดว่างด้วยนิพจน์ทั่วไปนี้^\r\nในหน้าจอคุณสามารถเห็นบรรทัดที่ตรงกันที่ระบุโดยสี่เหลี่ยมสีน้ำตาล

Visual Studio 2013 แทนที่บรรทัดว่าง


ฉันก็ลองใช้วิธีนี้เช่นกัน แต่สตูดิโอภาพติดค้างอยู่นานหลายนาทีแล้วแทนที่ฉันเกิดขึ้นเพียง 1 ครั้งมีหลายร้อย! lol :-D
BertuPG

17

ทดสอบใน VS 2012 เพื่ออนุญาตให้ใช้ฟีดไลน์

^\s*$\n 

HTH


2
สิ่งนี้ใช้ได้กับฉันใน VS 2015 คำตอบที่ยอมรับไม่ได้น่าเสียดายที่
EdwardM

ทำงานใน VS 2013 เช่นกัน
Joe Johnston

2
ทำงานได้ดีใน VS 2017 คำตอบที่ยอมรับไม่ได้
Germstorm

ทำงานในปี 2019 ได้เช่นกัน
โจจอห์นสตัน

17

ใช้ Visual Studio 2017 ขึ้นไป

ใน เอกสารปัจจุบัน

ใช้ทางลัด

  • เปิด เครื่องมือ > ตัวเลือกหรือกดAlt+ T+O
  • ภายใต้แท็บสิ่งแวดล้อม > แป้นพิมพ์
  • ค้นหา " DeleteBlank " และเลือกEdit.DeleteBlankLines
  • เพิ่มทางลัดใหม่เช่นCtrl+ D, Ctrl+E
  • กำหนด > ตกลง

เลือกข้อความทั้งหมดและกดปุ่มลัด

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


การทำเช่นนี้จะลบเฉพาะบรรทัดว่างที่เลือกหรือจากบรรทัดปัจจุบันจนถึงบรรทัดที่ไม่ว่างถัดไป ไม่ใช่สำหรับเอกสารหรือโครงการทั้งหมด
ม.ค.

1
ลองเลือกทั้งหมดก่อนเรียกใช้คำสั่งจากนั้นจะใช้งานได้
Kris Morness

9

ในการลบแถวว่างสองแถวหรือมากกว่าที่อยู่ติดกันด้วย VS2012 ให้ใช้สิ่งนี้:

^(?([^\r\n])\s)*\r?$\r?\n^(?([^\r\n])\s)*\r?$\r?\n

ฉันกำลังหาวิธีแก้ปัญหาเพื่อแทนที่สองบรรทัดว่างเป็นหนึ่งเดียว มันใช้งานได้สำหรับฉัน ขอบคุณ!
Ricardo França

8

ฉันกำลังใช้ visual studio 2017 ไม่ได้ทำงานกับฉันจนกว่าฉันจะลอง \n\r

ขั้นตอน:

  1. Ctrl + H (เปิดค้นหาและแทนที่)
  2. เลือกใช้นิพจน์ทั่วไป (Alt + E)
  3. ป้อน\n\rลงในอินพุต "ค้นหา ... "
  4. กดแทนที่


2

ติดตั้งCodeMaidและกดCtrl+M, Space' to clean up the code. (It formats the code, like Format DocumentCtrl + E, D` เช่นกัน) คุณสามารถล้างไฟล์เพิ่มเติมได้จาก Solution Explorer


1

ใน VS 2012 สตริง regex ที่ใช้ในการค้นหาและแทนที่บรรทัดว่างทั้งหมดคือ ^ (? ([^ \ r \ n]) \ s) \ r? \ n


0

Ctrl+ K, Ctrl+ จัดDรูปแบบเอกสารปัจจุบันโดยอัตโนมัติและลบพื้นที่ที่ไม่จำเป็นในรหัสของคุณ ช่วยให้โค้ดของคุณสามารถอ่านได้หากสิ่งที่คุณต้องการ


ฉันกำลังอ้างอิงถึงปัญหาของฉันโปรดดูมันดูนี่คือสิ่งที่ฉันกำลังมองหา stackoverflow.com/questions/44747909/… .
Vivek Shukla

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