ฉันมีไฟล์ข้อความขนาดใหญ่ที่ฉันต้องการลบข้อความทั้งหมดระหว่างสัญลักษณ์ ^ และสัญลักษณ์ ~ สิ่งนี้ต้องทำงานข้ามสายเช่นกัน
ฉันพยายามทำการค้นหาและแทนที่อย่างสม่ำเสมอโดยใช้^*~
ในกล่องค้นหาและไม่มีอะไรในกล่องแทนที่ แต่พบผลลัพธ์ 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