ใน Notepad ++ ฉันมีหลายบรรทัดในรูปแบบ:
abc.xyz
โดยที่ "abc" อาจมีที่ว่างหรือ - หรือตัวเลข
ฉันจะลบบรรทัดที่ไม่มี "." ได้อย่างไร ดังนั้นหากบรรทัดไม่มี "." ใด ๆ ฉันต้องการให้ลบออกทั้งหมดไม่เว้นแม้แต่บรรทัดว่าง
ใน Notepad ++ ฉันมีหลายบรรทัดในรูปแบบ:
abc.xyz
โดยที่ "abc" อาจมีที่ว่างหรือ - หรือตัวเลข
ฉันจะลบบรรทัดที่ไม่มี "." ได้อย่างไร ดังนั้นหากบรรทัดไม่มี "." ใด ๆ ฉันต้องการให้ลบออกทั้งหมดไม่เว้นแม้แต่บรรทัดว่าง
คำตอบ:
.
?เมนู "ค้นหา"> "แทนที่" (หรือCtrl+ H)
ตั้งค่า "ค้นหาสิ่งที่" เป็น ^[^\.]*\r\n
\r\n
ด้วยนิพจน์ทั่วไป EOL (End of Line) ที่แตกต่างกันโดยขึ้นอยู่กับ EOL ในไฟล์ของคุณ (ดู "ฉันมี EOL อื่นในไฟล์ของฉันฉันจะทำอะไรได้บ้าง" และ "ฉันไม่สนใจสิ่งที่ EOLs ไฟล์ของฉันใช้ ฉันต้องทำอย่างไร "ด้านล่าง)ล้าง "แทนที่ด้วย"
เปิดใช้งาน "นิพจน์ทั่วไป"
คลิก "แทนที่ทั้งหมด"
หมายเหตุ:
ด้านบนถือว่าเป็นบรรทัดสุดท้ายในไฟล์ที่มี EOL ต่อท้าย
ดังกล่าวข้างต้นยังถือว่าคุณกำลังแก้ไขไฟล์ข้อความกับ Windows \r\n
EOLs,
ก่อน :
abc.xyz
abcdef
abc 123.xyz
abc 123def
หลัง :
abc.xyz
abc 123.xyz
ของ Windows EOL \r\n
คือ
หากคุณใช้ไฟล์ที่มี EOL อื่นคุณสามารถแปลงเป็น EOL ของ Windows ได้โดยใช้เมนู "แก้ไข"> "การแปลง EOL"
หากคุณไม่ได้ทำงานกับ Windows EOL และไม่ต้องการแปลงให้ใช้สิ่งต่อไปนี้แทน:
ใช้\n
แทน\r\n
Unix / OS X EOLs
ใช้\r
แทน\r\n
EOL สำหรับ Mac OS (จนถึงเวอร์ชัน 9)
คุณสามารถใช้\R
หรือ(?:\r\n?|\n)
หรือแทน(?:\r?\n?)
\r\n
สิ่งนี้ทำให้เกิดปัญหากับ EOLs ที่ใช้จริงในไฟล์
(?:\r?\n?|$)
นอกจากนี้คุณยังสามารถใช้ นิพจน์นี้จะใช้งานได้หากไม่มี EOL ในบรรทัดสุดท้ายของไฟล์
\r
ไม่ตรงกับ EOL บน Windows หากคุณลบ\n
สิ่งที่เหลือคุณจะมีบรรทัดว่าง OP ระบุว่า "ฉันต้องการให้ลบอย่างสมบูรณ์ไม่เว้นแม้แต่บรรทัดว่าง"
คำตอบที่ยอมรับนั้นถูกต้อง แต่คุณจะไม่ได้ regex ที่พร้อมเสมอ ดังนั้นฉันจึงนำเสนอทางออกที่ง่ายขึ้น
.