วิธีการสร้างไวยากรณ์นิพจน์ทั่วไปสำหรับแท็ก HTML
นิพจน์ทั่วไปมีตำแหน่งที่ไม่สามารถถูกแทนที่ได้ในกระบวนการประมวลผลสตริง มีแพ็คเกจสนับสนุนนิพจน์ทั่วไปที่สอดคล้องกันในภาษาคอมพิวเตอร์ระดับสูงในปัจจุบัน
หากเราปฏิบัติต่อรหัส HTML ในหน้าเว็บเป็นสตริงที่มีโครงสร้างเราจะแยกแท็ก HTML (แท็ก) ที่ต้องการได้อย่างไรในลักษณะที่คล้ายกับนิพจน์ทั่วไปได้อย่างไร
อย่าพิจารณาวิธีการใช้งานก่อน แต่พิจารณาวิธีการอธิบายแท็ก HTML ในลักษณะที่เหมือนการแสดงออกปกติ ในการรับแท็ก HTML คุณต้องรู้แอตทริบิวต์ 2 ประเภทของแท็ก:
1. ตำแหน่งของฉลาก
2. คุณลักษณะของแท็กเอง;
ตัวอย่างเช่นในหน้า HTML ต่อไปนี้:
<html>
<body>
<div id = "bodywrapper">
<div id = "leftwrapper">
</div>
<div id = "rightwrapper">
<div>
<div>
<div>
<div>
</div>
</div>
</body>
</html>
หากคุณต้องการแยกแท็ก DIV ที่สองในรหัส HTML ด้านบนฉันต้องระบุ ID คลาสและข้อมูลตำแหน่งของ DIV คำถามตอนนี้คือ: วิธีการออกแบบไวยากรณ์การแสดงออกที่ตรงตามข้อกำหนดข้างต้น?
ตัวอย่างเช่น:
getTag: div {tag-name: div; tag-position: 2; tag-class: คอลัมน์; tag-id:; Tag-Content:;}
Tag-Parent {tag-name: div; tag-position: 2; tag-class: คอลัมน์; tag-id:; Tag-Content:;}
Tag-Child {...... }
ด้านบนนี้เป็นไวยากรณ์เชิงพรรณนาที่เข้าใจง่าย
หรือไวยากรณ์เหมือนงูเหลือม:
GetTag: Div
Tag-Name:
tag-id:
ตำแหน่งแท็ก: 2
แท็กคลาส: คอลัมน์
แท็กเนื้อหา:
Tag-Parent:
Tag-Name:
tag-id:
ตำแหน่งแท็ก: 2
แท็กคลาส: คอลัมน์
แท็กเนื้อหา:
แท็กเด็ก:
Tag-type: ตาราง
ฉันไม่รู้ว่ามีรูปแบบการแสดงออกทางไวยากรณ์ที่เหมาะสมกว่าหรือไม่ ตราบใดที่ไวยากรณ์นิพจน์นี้สามารถออกแบบได้อย่างสมเหตุสมผลงานที่ตามมาจะง่ายต่อการทำ เป้าหมายสูงสุดของสิ่งนี้คือ: โปรแกรมเมอร์สามารถแยกวิเคราะห์รหัส HTML ด้วยนิพจน์นี้ได้อย่างสะดวกพอ ๆ กับการจัดการสตริงธรรมดา
ฉันหวังว่าทุกคนจะเข้าร่วมและให้ความคิดเพิ่มเติม ฉันจะปรับปรุงไวยากรณ์นี้ตามข้อเสนอแนะของทุกคนและดำเนินการตามไวยากรณ์นี้
อ้างถึง:
การแนะนำขั้นพื้นฐานเกี่ยวกับการแสดงออกปกติสามารถพบได้ที่นี่:
http://www.vevb.com/htmldata/2006-03-16/1142469074.html
http://www.vevb.com/htmldata/2006-03-16/1142468929.html
การแสดงออกปกติถูกเสนอครั้งแรกโดยนักคณิตศาสตร์สตีเฟ่นคลีนในปี 2499 ขึ้นอยู่กับผลการวิจัยที่เพิ่มขึ้นของภาษาธรรมชาติ การแสดงออกปกติที่มีไวยากรณ์เต็มรูปแบบถูกนำมาใช้ในการจับคู่แบบฟอร์มของตัวละครและต่อมาถูกนำไปใช้กับสาขาเทคโนโลยีสารสนเทศที่หลอมเหลว ตั้งแต่นั้นมาหลังจากการพัฒนาหลายช่วงเวลามาตรฐานปัจจุบันได้รับการอนุมัติจาก ISO (องค์กรมาตรฐานสากล) และได้รับการยอมรับจากกลุ่มเปิด
นิพจน์ทั่วไปไม่ใช่ภาษาพิเศษ แต่สามารถใช้เป็นมาตรฐานสำหรับการค้นหาและแทนที่ข้อความในไฟล์หรืออักขระ มันมีสองมาตรฐาน: นิพจน์ทั่วไป (BRE), ขยายการแสดงออกปกติ (ERE) รวมถึงฟังก์ชั่น BRE และแนวคิดอื่น ๆ
การแสดงออกปกติใช้ในหลาย ๆ โปรแกรมรวมถึง XSH, EGREP, SED, VI และโปรแกรมภายใต้แพลตฟอร์ม UNIX พวกเขาสามารถนำมาใช้โดยหลายภาษาเช่น HTML และ XML ซึ่งมักจะเป็นเพียงส่วนย่อยของมาตรฐานทั้งหมด