ฉันมีไฟล์ข้อความขนาดใหญ่ที่ฉันต้องการลบข้อความทั้งหมดระหว่างสัญลักษณ์ ^ และสัญลักษณ์ ~ สิ่งนี้ต้องทำงานข้ามสายเช่นกัน
ฉันพยายามทำการค้นหาและแทนที่อย่างสม่ำเสมอโดยใช้^*~ในกล่องค้นหาและไม่มีอะไรในกล่องแทนที่ แต่พบผลลัพธ์ 0 รายการ
ฉันมีไฟล์ข้อความขนาดใหญ่ที่ฉันต้องการลบข้อความทั้งหมดระหว่างสัญลักษณ์ ^ และสัญลักษณ์ ~ สิ่งนี้ต้องทำงานข้ามสายเช่นกัน
ฉันพยายามทำการค้นหาและแทนที่อย่างสม่ำเสมอโดยใช้^*~ในกล่องค้นหาและไม่มีอะไรในกล่องแทนที่ แต่พบผลลัพธ์ 0 รายการ
คำตอบ:
ไม่สามารถทำได้ด้วยการค้นหาและแทนที่ปกติ หากคุณใช้ Notepad ++ 6 คุณสามารถใช้ประโยชน์จากเอ็นจิ้น regex ใหม่ที่รองรับPCRE ( แหล่งที่มา )
กดCtrl+ Hเพื่อเปิดกล่องโต้ตอบค้นหาและแทนที่และดำเนินการต่อไปนี้:
Find what: \^.*?~
Replace with:
Wrap around: checked
Regular expression: selected
. matches newline: checked
ตอนนี้กดAlt+ Aเพื่อแทนที่เหตุการณ์ทั้งหมด
การแสดงออกปกติในการค้นหาสิ่งที่ประกอบด้วยดังนี้:
\^เป็นตัวอักษร^.*? คือจำนวนอักขระน้อยที่สุดที่อนุญาตให้นิพจน์ทั่วไปตรงกัน~เป็นตัวอักษร~.*?รูปแบบการทำงานให้ฉันเพื่อค้นหาระหว่างตัวละครของและ; <ดังนั้นการค้นหาคือ FIND ;.*?<แทนที่;ด้วยตัวเลือกที่เลือกสำหรับRegular expressionและ. matches new line
คุณ gonna ต้องการค้นหาและให้แน่ใจว่า\^.*?~ เปิดใช้งานการจับคู่บรรทัดใหม่ :
นี่เป็นเพราะ^มีความหมายพิเศษมันตรงกับจุดเริ่มต้นของบรรทัด \^ดังนั้นเราจึงต้องหลบหนีด้วยเครื่องหมาย
การเขียน^*จะจับคู่ "จำนวนเริ่มต้นของบรรทัดในแถวใดก็ได้" .*ตรงกับ "ตัวละครใด ๆ " แต่ตามค่าเริ่มต้นแล้วจะไม่ตรงกับบรรทัดใหม่
~ตัวละคร (หรือ ie. หลายขีด) นี้จะตรงกับครั้งแรกที่ทุกทางไปที่ผ่านมา^ ~
*?ที่ไม่ได้เป็นโลภก็ขี้เกียจ จะไม่ตรงกับมากกว่าหนึ่ง.*?~ ~ดังนั้นมันก็โอเค
ลองใช้ regex นี้ในส่วนค้นหา\^[^~]*~ เพื่อแทนที่ทุกอย่างระหว่าง ^ และ ~ รวมอยู่ด้วย
^~สำหรับเฉพาะเพียงแทนที่ด้วย
\^[^~]*~ด้วย^~?
ฉันมีข้อกำหนดทดแทนระหว่าง BETWEEN ที่คล้ายกันกับอักขระเริ่มต้นและสิ้นสุด สิ่งนี้มาจากอีเมลแนวโน้ม hundereds ของสมาชิกและฉันแค่อยากชื่อคนที่มีทุกอย่างที่ถอดออกระหว่างRemoveTextHere <>
เป็นต้นฉบับ
First1 Last1 <First1.Last1@email.com>; First2 Last2 <First2.Last2@email.com>; First3 Last3 <First3.Last3@email.com>; First4 Last4 <First4.Last4@email.com>;
เดนนิสได้ใกล้เคียงกับการแก้ปัญหาของฉันFind what: \^.*?~แต่ฉันมีการเปลี่ยนแปลงตัวละครที่แท้จริงของฉันแล้วฉันมีการลบทับแรกFind what: \<.*?>Find what: <.*?>
อัปเด Find what: <.*?>ตแล้ว; แทนที่ว่างเปล่า
First1 Last1 ; First2 Last2 ; First3 Last3 ; First4 Last4
_
อักขระพิเศษ : *, $, \, +, ^, (และ), [, ], {และ}
อักขระพิเศษจะมีการอธิบายโดยเจอร์รีเยเรมีย์ที่นี่/programming/37742519/notepad-wildcard