ใช้นิพจน์ทั่วไปใน vi


0

เมื่อฉันเขียนรายการบล็อกใน Google Blogger มีการแทรกรายการจำนวนมากเช่นที่แสดงด้านล่างใน HTML (ไม่แน่ใจว่าทำไม)

<span id="textmarked_8" name="textmarker_9" style="background-color: yellow;"></span>

ฉันจะลบออกได้อย่างไร หมายเหตุตัวเลข 8 และ 9 จะต้องถูกแทนที่ด้วยนิพจน์ทั่วไป ฉันกำลังมองหาคำสั่งใน vi หรือคำสั่งง่าย ๆ BTW ฉันใช้ Ubuntu

ขอบคุณ

คำตอบ:


2

คุณควรใช้โปรแกรมแยกวิเคราะห์ HTML ไม่ใช่ regex (ดู คำตอบที่ผ่านมา ในหัวข้อนี้)

อย่างไรก็ตามหาก XML มีเนื้อหาที่คาดการณ์ได้และการจัดรูปแบบที่สมบูรณ์คุณสามารถหลีกหนีจากสิ่งที่ชอบ

:%s/<span[^>]*><\/span>//

(ทดสอบ) จุดสำคัญที่นี่คือการทดสอบสำหรับองค์ประกอบช่วงว่างที่เกิดขึ้นทั้งหมดในบรรทัดเดียวกัน คุณสามารถเพิ่มเครื่องหมายรูปหมวก (^) เมื่อเริ่มต้นหากองค์ประกอบช่วงที่ไม่ต้องการเริ่มต้นที่จุดเริ่มต้นของบรรทัดใหม่เสมอ

หากคุณต้องการจับคู่ id="textmarked_[0-9]* คุณสามารถทำได้ฉันสงสัยว่ามันเป็นสิ่งจำเป็น องค์ประกอบการเว้นว่างใด ๆ อาจทำหน้าที่ไม่มีประโยชน์โดยไม่คำนึงถึงคุณลักษณะของมัน ข้อยกเว้นเดียวที่ฉันคิดได้ก็คือถ้า javascript บางอันมีองค์ประกอบเหล่านั้นในภายหลัง


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