ลบคลาส span ผ่าน regex ใน Notepad ++


1

ฉันมีไฟล์ขนาดใหญ่ที่จัดไว้ให้มากกว่า 1000 คลาสคลาสสำหรับเพนนิเบอร์ ฉันต้องการลบไวยากรณ์ที่สมบูรณ์ด้วยข้อความใน notepad ++ ผ่าน ReGex ตัวอย่าง,<p>Cillacepro di to tem endelias eaquunto maximint eostrum eos dolorit et laboria estiati<span class=”pagenum”><a name=”Page_4” id=”Page_4”>[Pg 4]</a></span>Cillacepro di to tem endelias</p>

ฉันจะแทนที่<span class=”pagenum”><a name=”Page_4” id=”Page_4”>[Pg 4]</a></span>ด้วย "" เพื่อให้พบรูปแบบสำหรับตัวเลขสองและสามหลักเช่นกัน ฉันใหม่กับการค้นหาสตริง regex นี้ดังนั้นฉันจะขอบคุณถ้าใครสามารถช่วยฉันด้วยสตริงแทนที่สำหรับเดียวกัน ขอแสดงความนับถือ Aman Mittal


มันไม่ชัดเจนว่าคุณกำลังค้นหาอะไรและสิ่งที่คุณต้องการแทนที่ด้วยดังนั้นฉันขอแนะนำให้คุณดูที่บทช่วยสอนนี้
AFH

สวัสดีขอบคุณสำหรับการตอบกลับ ฉันแค่พยายามแทนที่ <span class =” pagenum”> <a name= ”Page_4” id= “Page_4 ”> [Pg 4] </a> </span> ด้วยช่องว่าง ฉันกำลังมองหาสตริงการค้นหาของ regex ที่ลบหมายเลขหน้าทั้งหมดในครั้งเดียวเพื่อที่ฉันจะได้ไม่ต้องลบแต่ละ syntax ทีละตัว
Aman Mittal

1
ฉันจินตนาการว่าการจับคู่<span class="pagenum">.*?</span>จะเพียงพอเนื่องจากคลาส span เท่านั้นที่มีข้อมูลหมายเลขหน้าเว็บที่คุณต้องการกำจัด โปรดทราบว่า.*?จะตรงกับจำนวนขั้นต่ำของตัวละครโดยพลการสร้างความมั่นใจว่าในการแข่งขันถูกจับคู่กับชั้นนำเดียวกัน</span> <span ...>
AFH

ขอบคุณมากที่สละเวลาและมอบวิธีแก้ปัญหา มันทำงานได้มหัศจรรย์สำหรับฉัน ฉันรู้สึกขอบคุณคุณมากเกินไป ขอบคุณมาก! รับความสุข!
Aman Mittal

@AFH ฉันหวังว่าฉันจะชอบโปรไฟล์ของคุณและให้ทุกคนรู้ว่าคุณเป็นคนที่ยอดเยี่ยมแค่ไหน ขอบคุณมาก!
Aman Mittal

คำตอบ:


1

หลีกเลี่ยงวงเล็บเหลี่ยมและใช้ดิจิตัลชวเลข ("/ d") ตามด้วยเครื่องหมายการทำซ้ำ "+" เพื่อจับคู่หมายเลขหน้า:

<span class="pagenum"><a name="Page_\d+" id="Page_\d+">\[Pg \d+\]</a></span>

คุณสามารถตรวจสอบ regex ข้างต้นในรหัสตัวอย่างต่อไปนี้:

placeholdertext<span class="pagenum"><a name="Page_4" id="Page_4">[Pg 4]</a></span>placeholdertext
placeholdertext
<span class="pagenum"><a name="Page_111" id="Page_111">[Pg 111]</a></span>
placeholdertext<span class="pagenum"><a name="Page_222" id="Page_222">[Pg 222]</a></span>

ขอบคุณมากที่สละเวลาและมอบวิธีแก้ปัญหา เป็นหน้าที่เฉพาะสำหรับ Page_1 และไม่สามารถใช้กับ Pg_1 ได้ แต่เราสามารถปรับแต่ง regex ได้ตลอดเวลา ขอบคุณมากสำหรับความช่วยเหลือทั้งหมด โซลูชันของคุณได้รับความช่วยเหลือเป็นอย่างดี ฉันรู้สึกขอบคุณคุณมากเกินไป ขอบคุณมาก! รับความสุข!
Aman Mittal

ยินดีต้อนรับคุณ! ข้อดีอีกข้อของโซลูชัน @AFH: การจับคู่ regex ของคุณหากมีการแบ่งบรรทัดภายในแท็ก span (ช่องทำเครื่องหมาย "จุดจับคู่ขึ้นบรรทัดใหม่" ใน Notepad ++) แต่วิธีแก้ปัญหาของ AFH อาจมีข้อเสียเปรียบหากแท็ก span ของคุณจะมีแท็ก span แบบซ้อนกัน
alzaj

1
@alzaj - ฉันไม่เคยเห็น<span>แท็กที่ซ้อนกันและแม้ว่าจะได้รับอนุญาตพวกเขาไม่น่าจะเป็นไปได้มากในการกำหนดหมายเลขหน้ายกเว้นว่าหมายเลขหน้านั้นเป็นส่วนในสุดซึ่งจะไม่ส่งผลต่อสตริงการจับคู่ของฉัน ฉันควรจะกล่าวถึงการตรวจสอบ. matches newline: ขอบคุณชี้ให้เห็นว่า
AFH

@alzaj - ฉันขอโทษที่ทำให้ปัญหาคุณอีกครั้ง แต่ในโครงการของฉันฉันพบกับการขยายหมายเลขหน้าชนิดอื่น: <span class = "tei tei-pb" id = "page001"> [pg 001] </span> <a name = "Pg001" id = "Pg001 "class =" tei tei-anchor "> </a> ฉันลองรหัสนี้เพื่อค้นหาพวกเขาทั้งหมดในครั้งเดียว: <span class =" tei tei-pb "id =" หน้า \ d + "> [pg \ d +] </ span> <a name="Pg\d+" id="Pg\d+" class="tei tei-anchor"> </a> อย่างไรก็ตามดูเหมือนว่าจะใช้งานไม่ได้ คุณช่วยบอกให้ฉันทราบข้อผิดพลาดในการค้นหา regex ได้ไหม ฉันจะต้องให้คุณอย่างมาก
Aman Mittal

2
เมื่อใช้เว็บไซต์นี้ฉันสามารถเห็นว่าปัญหาคือวงเล็บเหลี่ยมซึ่งจำเป็นต้องได้รับการยกเว้นเพื่อให้จับคู่ตามตัวอักษร ( \[และ\]); มิฉะนั้นจะถือว่าเป็นการ จำกัด ชุดอักขระในการจับคู่อักขระเดียว โปรดทราบว่าไม่มีการจับคู่ที่แน่นอนสำหรับ NotePad ++ แต่ฉันสามารถใช้รสชาติ "golang" ได้ สำหรับตัวเลขโรมันคุณเพียงแทนที่\d+ด้วย.+: หมายความว่ามีความเป็นไปได้ในการจับคู่หมายเลขหน้าที่ไม่ใช่ตัวเลข แต่ฉันไม่สามารถจินตนาการได้ว่าสิ่งนี้จะเกิดขึ้น [0-9ivxdm]+คุณสามารถกระชับเกณฑ์ด้วย
AFH

1

ขอขอบคุณ @AFH สำหรับการให้คำตอบทั่วไปซึ่งสามารถรองรับ Page, Pg และประเภทอื่น ๆ ได้เช่นกัน ฉันจินตนาการว่าการจับคู่<span class="pagenum">.*?</span>จะเพียงพอเนื่องจากคลาส span เท่านั้นที่มีข้อมูลหมายเลขหน้าเว็บที่คุณต้องการกำจัด ทราบว่า. *? จะจับคู่กับจำนวนอักขระที่กำหนดเองขั้นต่ำเพื่อให้แน่ใจว่าในการแข่งขันนั้นจะถูกจับคู่กับผู้นำที่เหมือนกัน - AFH 12 ชั่วโมงที่ผ่านมา

ฉันขอขอบคุณ @alzaj ที่ให้ทิศทางที่ถูกต้องเช่นกัน ขอบคุณมาก! บันทึกวันและความพยายามของฉัน! ขอแสดงความนับถือ Aman Mittal

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