ฉันจะลบบรรทัดที่ไม่มี“.” ได้อย่างไร ใน Notepad ++ [ซ้ำ]


11

ใน Notepad ++ ฉันมีหลายบรรทัดในรูปแบบ:

abc.xyz

โดยที่ "abc" อาจมีที่ว่างหรือ - หรือตัวเลข

ฉันจะลบบรรทัดที่ไม่มี "." ได้อย่างไร ดังนั้นหากบรรทัดไม่มี "." ใด ๆ ฉันต้องการให้ลบออกทั้งหมดไม่เว้นแม้แต่บรรทัดว่าง

คำตอบ:


40

วิธีการลบเส้นโดยไม่.?

  • เมนู "ค้นหา"> "แทนที่" (หรือCtrl+ H)

  • ตั้งค่า "ค้นหาสิ่งที่" เป็น ^[^\.]*\r\n

    • คุณสามารถแทนที่\r\nด้วยนิพจน์ทั่วไป EOL (End of Line) ที่แตกต่างกันโดยขึ้นอยู่กับ EOL ในไฟล์ของคุณ (ดู "ฉันมี EOL อื่นในไฟล์ของฉันฉันจะทำอะไรได้บ้าง" และ "ฉันไม่สนใจสิ่งที่ EOLs ไฟล์ของฉันใช้ ฉันต้องทำอย่างไร "ด้านล่าง)
  • ล้าง "แทนที่ด้วย"

  • เปิดใช้งาน "นิพจน์ทั่วไป"

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

    ภาพ

หมายเหตุ:

  • ด้านบนถือว่าเป็นบรรทัดสุดท้ายในไฟล์ที่มี EOL ต่อท้าย

  • ดังกล่าวข้างต้นยังถือว่าคุณกำลังแก้ไขไฟล์ข้อความกับ Windows \r\nEOLs,

ก่อน :

abc.xyz
abcdef
abc 123.xyz
abc 123def

หลัง :

abc.xyz
abc 123.xyz

ฉันมี EOL อื่นในไฟล์ของฉันฉันควรทำอย่างไร

  • ของ Windows EOL \r\nคือ

  • หากคุณใช้ไฟล์ที่มี EOL อื่นคุณสามารถแปลงเป็น EOL ของ Windows ได้โดยใช้เมนู "แก้ไข"> "การแปลง EOL"

  • หากคุณไม่ได้ทำงานกับ Windows EOL และไม่ต้องการแปลงให้ใช้สิ่งต่อไปนี้แทน:

    • ใช้\nแทน\r\nUnix / OS X EOLs

    • ใช้\rแทน\r\nEOL สำหรับ Mac OS (จนถึงเวอร์ชัน 9)


ฉันไม่รู้หรือสนใจว่าไฟล์ EOL ของฉันใช้อะไรฉันควรทำอย่างไร

  • คุณสามารถใช้\Rหรือ(?:\r\n?|\n)หรือแทน(?:\r?\n?) \r\nสิ่งนี้ทำให้เกิดปัญหากับ EOLs ที่ใช้จริงในไฟล์

  • (?:\r?\n?|$)นอกจากนี้คุณยังสามารถใช้ นิพจน์นี้จะใช้งานได้หากไม่มี EOL ในบรรทัดสุดท้ายของไฟล์


อ่านเพิ่มเติม


5
คุณสามารถใช้ \ R เพื่อให้ตรงกับ linebreak ใด ๆ
694733

@ user694733 โปรดอธิบาย? \rไม่ตรงกับ EOL บน Windows หากคุณลบ\nสิ่งที่เหลือคุณจะมีบรรทัดว่าง OP ระบุว่า "ฉันต้องการให้ลบอย่างสมบูรณ์ไม่เว้นแม้แต่บรรทัดว่าง"
DavidPostill

ตัวพิมพ์ใหญ่ R. N ++ ใช้ PCRE ซึ่งนี่เป็นคลาสอักขระพิเศษหากหน่วยความจำของฉันรองรับฉันได้
694733

@ user694733 Ah ตกลง. ทดสอบแล้วและใช้งานได้
DavidPostill

regex101.comเป็นเว็บไซต์ที่ดีกว่าสำหรับการเรียนรู้ regex กว่า regexexr
cat

14

คำตอบที่ยอมรับนั้นถูกต้อง แต่คุณจะไม่ได้ regex ที่พร้อมเสมอ ดังนั้นฉันจึงนำเสนอทางออกที่ง่ายขึ้น

  1. Ctrl+ F- คลิกที่แท็บทำเครื่องหมาย
  2. ตั้งค่า "ค้นหาสิ่งที่" เป็น .
  3. ตรวจสอบตัวเลือก "บรรทัดบุ๊กมาร์ก" (ความอนุเคราะห์จาก Wrass)
  4. ค้นหาโหมด = ปกติ
  5. คลิกทำเครื่องหมายทั้งหมด -> คุณควรเห็นวงกลมสีน้ำเงินถัดจากหมายเลขบรรทัดที่คั่นหน้า
  6. จากนั้นไปที่เมนูค้นหา -> คั่นหน้า -> ลบเส้นที่ไม่ได้ทำเครื่องหมาย

นี่เป็นทางเลือกที่ง่าย แต่คุณอาจต้องการพูดถึงว่าคุณควรเลือกตัวเลือก 'เส้นคั่นหน้า' ในกล่องโต้ตอบทำเครื่องหมาย การไม่ทำเช่นนั้นจะส่งผลให้ทุกบรรทัดถูกลบออก
Wrass

จุดดีสมุดบันทึกของฉันจำได้ตั้งแต่ครั้งที่แล้วดังนั้นฉันจึงลืมไป
Zikato

ฉันใช้ regex ตลอดเวลา แต่ฉันยังคงใช้วิธีนี้เพื่อความเรียบง่าย คำเตือน: ฉันยังใช้ฟังก์ชั่นที่คั่นหน้าต่างๆใน Notepad ++ มาก
JPhi1618

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