นิพจน์ทั่วไป (นิพจน์ทั่วไป) ให้วิธีการที่มีประสิทธิภาพและสะดวกสำหรับการจับคู่รูปแบบสตริง ภาษาระดับสูงเกือบทั้งหมดให้การสนับสนุนนิพจน์ทั่วไปหรือจัดเตรียมไลบรารีโค้ดสำเร็จรูปสำหรับการโทร บทความนี้ใช้งานการประมวลผลทั่วไปในสภาพแวดล้อม ASP เป็นตัวอย่างเพื่อแนะนำทักษะการใช้งานของนิพจน์ทั่วไป
1. ตรวจสอบรูปแบบของรหัสผ่านและที่อยู่อีเมล
ตัวอย่างแรกของเราแสดงให้เห็นถึงฟังก์ชันพื้นฐานของนิพจน์ทั่วไป: อธิบายสตริงที่ซับซ้อนโดยพลการ ความหมายคือนิพจน์ทั่วไปทำให้โปรแกรมเมอร์มีวิธีคำอธิบายสตริงที่เป็นทางการ ซึ่งสามารถอธิบายรูปแบบสตริงใดๆ ที่แอปพลิเคชันพบด้วยโค้ดเพียงเล็กน้อยเท่านั้น ตัวอย่างเช่น สำหรับผู้ที่ไม่ได้ทำงานด้านเทคนิค ข้อกำหนดสำหรับรูปแบบรหัสผ่านสามารถอธิบายได้ดังนี้: อักขระตัวแรกของรหัสผ่านต้องเป็นตัวอักษร รหัสผ่านต้องมีอย่างน้อย 4 ตัวอักษรและไม่เกิน 15 ตัวอักษร รหัสผ่านต้องไม่มีตัวอักษร ตัวเลข และอักขระอื่นนอกจากขีดล่าง
ในฐานะโปรแกรมเมอร์ เราต้องแปลงคำอธิบายภาษาธรรมชาติของรูปแบบรหัสผ่านข้างต้นเป็นรูปแบบอื่นๆ เพื่อให้หน้า ASP สามารถเข้าใจและนำไปใช้เพื่อป้องกันการป้อนรหัสผ่านที่ผิดกฎหมาย นิพจน์ทั่วไปที่อธิบายรูปแบบรหัสผ่านนี้คือ: ^[a-zA-Z]w{3,14}$
ในแอปพลิเคชัน ASP เราสามารถเขียนกระบวนการตรวจสอบรหัสผ่านเป็นฟังก์ชันที่นำมาใช้ซ้ำได้ ดังที่แสดงด้านล่าง:
Function TestPassword(strPassword)
ติ่มซำอีกครั้ง
ตั้งค่าใหม่ = RegExp ใหม่
re.IgnoreCase = false
re.global = เท็จ
re.Pattern = "^[a-zA-Z]w{3,14}$"
TestPassword = re.Test(strPassword)
ฟังก์ชันสิ้นสุด
ด้านล่างนี้เราเปรียบเทียบนิพจน์ทั่วไปในการตรวจสอบรูปแบบรหัสผ่านกับคำอธิบายภาษาธรรมชาติ:
อักขระตัวแรกของรหัสผ่านต้องเป็นตัวอักษร: คำอธิบายนิพจน์ทั่วไปคือ "^[a-zA-Z]" โดยที่ " ^" ระบุจุดเริ่มต้นของสตริง และยัติภังค์บอก RegExp ให้จับคู่อักขระทั้งหมดในช่วงที่ระบุ
รหัสผ่านต้องมีอย่างน้อย 4 ตัวอักษรและไม่เกิน 15 ตัวอักษร: คำอธิบายนิพจน์ทั่วไปคือ "{3,14}"
รหัสผ่านต้องไม่มีอักขระอื่นนอกจากตัวอักษร ตัวเลข และขีดล่าง: คำอธิบายนิพจน์ทั่วไปคือ "w"
หมายเหตุบางประการ: {3, 14} หมายความว่ารูปแบบก่อนหน้านี้ตรงกับอักขระอย่างน้อย 3 ตัวแต่ไม่เกิน 14 ตัว (บวกอักขระตัวแรกจะกลายเป็นอักขระ 4 ถึง 15 ตัว) โปรดทราบว่าไวยากรณ์ภายในวงเล็บปีกกาเข้มงวดมากและไม่อนุญาตให้มีช่องว่างที่ด้านใดด้านหนึ่งของเครื่องหมายจุลภาค หากเพิ่มช่องว่าง จะส่งผลต่อความหมายของนิพจน์ทั่วไปและทำให้เกิดข้อผิดพลาดระหว่างการตรวจสอบรูปแบบรหัสผ่าน นอกจากนี้ อักขระ "$" จะไม่ถูกเพิ่มที่ส่วนท้ายของนิพจน์ทั่วไปข้างต้น อักขระ $ ทำให้นิพจน์ทั่วไปจับคู่สตริงจนถึงจุดสิ้นสุด ทำให้มั่นใจได้ว่ารหัสผ่านที่ถูกต้องจะไม่มีอักขระเพิ่มเติมตามหลัง
เช่นเดียวกับการยืนยันรูปแบบรหัสผ่าน การตรวจสอบความถูกต้องของที่อยู่อีเมลก็เป็นปัญหาที่พบบ่อยมากเช่นกัน การใช้นิพจน์ทั่วไปในการยืนยันที่อยู่อีเมลอย่างง่ายสามารถทำได้ดังนี้:
<%
ติ่มซำอีกครั้ง
ตั้ง re = new RegExp
re.pattern = "^w+@[a-zA-Z_]+?.[a-zA-Z]{2,3}$"
Response.เขียนการทดสอบใหม่(" [email protected] ")
%>
2. แยกเฉพาะส่วนของหน้า HTML
ปัญหาหลักที่ต้องเผชิญในการแยกเนื้อหาออกจากหน้า HTML คือเราต้องหาวิธีระบุส่วนของเนื้อหาที่เราต้องการได้อย่างแม่นยำ ตัวอย่างเช่น ต่อไปนี้คือข้อมูลโค้ด HTML ที่แสดงหัวข้อข่าว:
<table border="0" width="11%" class="Somestory">
<tr>
<ความกว้างtd="100%">
<p align="center"><เนื้อหาอื่นๆ...</td>
</tr>
</โต๊ะ><
<table border="0" width="11%" class="Headline">
<tr>
<ความกว้างtd="100%">
<p align="center">สงครามในอิรัก! </td>
</tr>
</โต๊ะ><
<table border="0" width="11%" class="Someotherstory">
<tr>
<ความกว้างtd="100%">
<p align="center"><เนื้อหาอื่นๆ...</td>
</tr>
</table">
เมื่อสังเกตโค้ดข้างต้น จะเห็นว่าชื่อข่าวปรากฏอยู่ตรงกลางตาราง และแอตทริบิวต์ class ของข่าวนั้นถูกตั้งค่าเป็น Headline หากหน้า HTML ซับซ้อนมาก คุณสามารถใช้คุณลักษณะเพิ่มเติมที่มีให้โดย Microsoft IE เริ่มตั้งแต่ 5.0 เพื่อดูเฉพาะโค้ด HTML ของส่วนที่เลือกของหน้า โปรดไปที่ http://www.microsoft.com/Windows/ie /WebAccess/default.ASP เรียนรู้เพิ่มเติม สำหรับตัวอย่างนี้ เราถือว่านี่เป็นตารางเดียวที่มีการตั้งค่าแอตทริบิวต์คลาสเป็นหัวข้อข่าว ตอนนี้เราจำเป็นต้องสร้างนิพจน์ทั่วไป ค้นหาตารางหัวข้อนี้ผ่านนิพจน์ทั่วไป และรวมตารางนี้ไว้ในหน้าของเราเอง ประการแรกคือการเขียนโค้ดที่รองรับนิพจน์ทั่วไป:
<%
ติ่มซำอีกครั้ง strHTML
ตั้งค่า re = new RegExp ' สร้างวัตถุนิพจน์ทั่วไป
re.IgnoreCase = true
re.Global = false 'สิ้นสุดการค้นหาหลังจากนัดแรก
%>
ตอนนี้ให้พิจารณาพื้นที่ที่เราต้องการแยก: ในที่นี้ สิ่งที่เราต้องการแยกคือโครงสร้าง <table> ทั้งหมด รวมถึงแท็กปิดและข้อความของชื่อข่าว ดังนั้น อักขระเริ่มต้นของการค้นหาควรเป็นแท็กเริ่มต้น <table>: re.Pattern = "<table.*(?=Headline)" นิพจน์ทั่วไปนี้ตรงกับแท็กเริ่มต้นของตาราง และสามารถส่งคืนทุกอย่างระหว่างแท็กเริ่มต้นและ "Headline" (ยกเว้นการขึ้นบรรทัดใหม่) ต่อไปนี้เป็นวิธีส่งคืนโค้ด HTML ที่ตรงกัน:
'ใส่โค้ด HTML ที่ตรงกันทั้งหมดลงในคอลเลกชั่น Matches
Set Matches = re.Execute(strHTML)
'แสดงโค้ด HTML ที่ตรงกันทั้งหมด
สำหรับแต่ละรายการในการแข่งขัน
การตอบสนองเขียนรายการมูลค่า
ถัดไป
'แสดงหนึ่งใน
Response.write Matches.Item(0).Value
รันโค้ดนี้เพื่อประมวลผลส่วน HTML ที่แสดงก่อนหน้านี้ นิพจน์ทั่วไปส่งคืนเนื้อหาของรายการที่ตรงกันดังนี้: <table border="0" width="11%" class=" นิพจน์ทั่วไป "(?=Headline)" ในนิพจน์ไม่ได้รับอักขระ ดังนั้นจึงไม่สามารถมองเห็นค่าของแอตทริบิวต์คลาสตารางได้ โค้ดสำหรับรับส่วนที่เหลือของตารางก็ค่อนข้างง่ายเช่นกัน: re.Pattern = "<table.*(?=Headline) (.|n)*?</table">" ในหมู่พวกเขา: "*" หลัง "(.|n)" จับคู่ 0 กับอักขระใดๆ เพิ่มเติม; ” จะย่อช่วงการจับคู่ “*” ให้เหลือน้อยที่สุด นั่นคือจับคู่อักขระให้น้อยที่สุดก่อนที่จะค้นหาส่วนถัดไปของนิพจน์ จะเป็นแท็กปิดท้ายของตารางซึ่ง
มีความสำคัญมาก นิพจน์จากการส่งคืนโค้ดสำหรับตารางอื่น ตัวอย่างเช่น สำหรับโค้ด HTML ที่ระบุข้างต้น หากคุณลบ "?" นี้ เนื้อหาที่ส่งคืนจะเป็น:
<table border="0" width="11%" class=" หัวเรื่อง">
<tr>
<ความกว้างtd="100%">
<p align="center">สงครามในอิรัก! </td>
</tr>
</โต๊ะ><
<table border="0" width="11%" class="Someotherstory">
<tr>
<ความกว้างtd="100%">
<p align="center"><เนื้อหาอื่นๆ...</td>
</tr>
</โต๊ะ><
เนื้อหาที่ส่งคืนไม่เพียงแต่มีแท็ก <table> ของตาราง Headline เท่านั้น แต่ยังรวมถึงตาราง Someotherstory ด้วย จะเห็นได้ว่าที่นี่มีความจำเป็น
ตัวอย่างนี้ถือว่ามีสถานที่ในอุดมคติที่ค่อนข้างดี ในแอปพลิเคชันจริง สถานการณ์มักจะซับซ้อนกว่ามาก โดยเฉพาะอย่างยิ่งเมื่อคุณไม่มีอิทธิพลต่อการเขียนซอร์สโค้ด HTML ที่ใช้งานอยู่ การเขียนโค้ด ASP จะยากเป็นพิเศษ วิธีที่มีประสิทธิภาพมากที่สุดคือการใช้เวลามากขึ้นในการวิเคราะห์ HTML ใกล้กับเนื้อหาที่จะแยก และทดสอบบ่อยๆ เพื่อให้แน่ใจว่าเนื้อหาที่แยกมานั้นเป็นสิ่งที่คุณต้องการอย่างแน่นอน นอกจากนี้ คุณควรใส่ใจและจัดการกับสถานการณ์ที่นิพจน์ทั่วไปไม่สามารถจับคู่เนื้อหาใดๆ ของหน้า HTML ต้นฉบับได้ เนื้อหาสามารถเปลี่ยนแปลงได้อย่างรวดเร็ว ดังนั้นอย่าจบลงด้วยข้อผิดพลาดไร้สาระบนเพจของคุณเพียงเพราะว่ามีคนเปลี่ยนรูปแบบของเนื้อหา
3. ไฟล์ข้อมูลข้อความแยกวิเคราะห์
มีไฟล์ข้อมูลหลายรูปแบบและหลายประเภท เอกสาร XML ข้อความที่มีโครงสร้าง และแม้แต่ข้อความที่ไม่มีโครงสร้าง มักจะกลายเป็นแหล่งข้อมูลสำหรับแอปพลิเคชัน ASP ตัวอย่างที่เราจะดูด้านล่างคือไฟล์ข้อความที่มีโครงสร้างโดยใช้ตัวระบุ ตัวระบุ (เช่น เครื่องหมายคำพูด) ระบุว่าส่วนของสตริงไม่สามารถแยกออกได้ แม้ว่าสตริงจะมีตัวคั่นที่แยกระเบียนออกเป็นเขตข้อมูลก็ตาม
ต่อไปนี้เป็นไฟล์ข้อความที่มีโครงสร้างอย่างง่าย:
นามสกุล, ชื่อ, หมายเลขโทรศัพท์, คำอธิบาย Sun, Wukong, 312 555 5656, ASP ดีมาก, Pig, Bajie, 847 555 5656 ฉันเป็นผู้ผลิตภาพยนตร์
ไฟล์นี้ดีมาก แบบง่าย บรรทัดแรกคือชื่อเรื่อง และสองบรรทัดต่อไปนี้คือระเบียนที่คั่นด้วยเครื่องหมายจุลภาค การแยกวิเคราะห์ไฟล์นี้ทำได้ง่ายมาก เพียงแบ่งไฟล์ออกเป็นบรรทัด (ตามสัญลักษณ์ขึ้นบรรทัดใหม่) จากนั้นแยกแต่ละบันทึกตามฟิลด์ อย่างไรก็ตาม หากเราเพิ่มเครื่องหมายจุลภาคลงในเนื้อหาบางฟิลด์:
นามสกุล, ชื่อ, หมายเลขโทรศัพท์, คำอธิบาย Sun, Wukong, 312 555 5656 ฉันชอบ ASP, VB และ SQL
Pig, Bajie, 847 555 5656 ฉันเป็นโปรดิวเซอร์ภาพยนตร์
จะมีปัญหาเมื่อแยกวิเคราะห์บันทึกแรก เนื่องจากในมุมมองของ parser ที่รู้จักเฉพาะตัวคั่นด้วยเครื่องหมายจุลภาค ฟิลด์สุดท้ายจะมีเนื้อหาของสองฟิลด์ เพื่อหลีกเลี่ยงปัญหาประเภทนี้ ช่องที่มีตัวคั่นจะต้องล้อมรอบด้วยตัวระบุ เครื่องหมายคำพูดเดี่ยวเป็นตัวระบุที่ใช้กันทั่วไป หลังจากเพิ่มตัวระบุใบเสนอราคาเดี่ยวลงในไฟล์ข้อความด้านบน เนื้อหาจะเป็นดังนี้:
นามสกุล ชื่อ หมายเลขโทรศัพท์ คำอธิบาย Sun, Wukong, 312 555 5656, 'ฉันชอบ ASP, VB และ SQL'
Zhu, Bajie, 847 555 5656, 'ฉันเป็นผู้ผลิตภาพยนตร์'
ตอนนี้เราสามารถระบุได้ว่าลูกน้ำตัวใดเป็นตัวคั่น และลูกน้ำตัวใดเป็นเนื้อหาฟิลด์ กล่าวคือ เราเพียงแต่ต้องถือว่าลูกน้ำที่ปรากฏภายในเครื่องหมายคำพูดเป็นเนื้อหา ของสนาม สิ่งต่อไปที่เราต้องทำคือใช้ตัวแยกวิเคราะห์นิพจน์ทั่วไปซึ่งกำหนดเวลาที่จะแยกฟิลด์ตามเครื่องหมายจุลภาคและเมื่อใดที่ควรถือว่าเครื่องหมายจุลภาคเป็นเนื้อหาฟิลด์
ปัญหาที่นี่แตกต่างจากที่นิพจน์ทั่วไปส่วนใหญ่เผชิญอยู่เล็กน้อย โดยปกติเราจะดูข้อความส่วนเล็กๆ เพื่อดูว่าตรงกับนิพจน์ทั่วไปหรือไม่ แต่ที่นี่ เราสามารถบอกได้อย่างน่าเชื่อถือว่ามีอะไรอยู่ในเครื่องหมายคำพูดหลังจากพิจารณาบรรทัดข้อความทั้งหมดแล้ว
นี่คือตัวอย่างที่แสดงให้เห็นถึงปัญหา สุ่มแยกเนื้อหาครึ่งบรรทัดจากไฟล์ข้อความและรับ: 1, beach, black, 21, ', dog, cat, duck, ', . ในตัวอย่างนี้ เนื่องจากมีข้อมูลอื่นทางด้านซ้ายของ "1" จึงเป็นเรื่องยากมากที่จะแยกวิเคราะห์เนื้อหา เราไม่ทราบว่ามีเครื่องหมายคำพูดเดี่ยวอยู่ข้างหน้าส่วนข้อมูลนี้กี่ตัว ดังนั้นเราจึงไม่สามารถระบุอักขระที่อยู่ในเครื่องหมายคำพูดได้ (ข้อความที่อยู่ในเครื่องหมายคำพูดไม่สามารถแยกได้ในระหว่างการแยกวิเคราะห์) หากส่วนของข้อมูลนำหน้าด้วยเครื่องหมายคำพูดเดี่ยวที่เป็นเลขคู่ (หรือไม่ใช่) ดังนั้น "', dog, cat, duck, '" จะเป็นสตริงที่มีเครื่องหมายคำพูดและไม่สามารถแบ่งแยกได้ หากจำนวนเครื่องหมายคำพูดก่อนหน้าเป็นเลขคี่ ดังนั้น "1, beach, black, 21, '" จะเป็นจุดสิ้นสุดของสตริงและแบ่งแยกไม่ได้
ดังนั้น นิพจน์ทั่วไปจะต้องวิเคราะห์ข้อความทั้งบรรทัด โดยคำนึงถึงจำนวนเครื่องหมายคำพูดที่ปรากฏเพื่อพิจารณาว่าอักขระนั้นอยู่ด้านในหรือด้านนอกคู่เครื่องหมายคำพูด นั่นคือ:,(?=([^']*'[ ^']*') *(?![^']*')). นิพจน์ทั่วไปนี้จะค้นหาเครื่องหมายคำพูดก่อน จากนั้นจึงค้นหาต่อไป และตรวจสอบให้แน่ใจว่าจำนวนเครื่องหมายคำพูดเดี่ยวหลังเครื่องหมายจุลภาคเป็นเลขคู่หรือศูนย์ นิพจน์ทั่วไปนี้ขึ้นอยู่กับการพิจารณาต่อไปนี้: หากจำนวนเครื่องหมายคำพูดเดี่ยวหลังเครื่องหมายจุลภาคเป็นเลขคู่ เครื่องหมายจุลภาคจะอยู่นอกสตริง ตารางต่อไปนี้ให้คำแนะนำโดยละเอียดเพิ่มเติม:
โดยมองหาเครื่องหมายจุลภาค
(?= ยังคงค้นหาต่อไปเพื่อให้ตรงกับรูปแบบนี้:
(เริ่มรูปแบบใหม่.
[^']*' [อักขระที่ไม่ใช่เครื่องหมายคำพูด] 0 ขึ้นไป ตามด้วยเครื่องหมายคำพูด
[^']*'[^']*) [อักขระที่ไม่ใช่เครื่องหมายคำพูด] 0 ขึ้นไป ตามด้วยเครื่องหมายคำพูด เมื่อรวมกับเนื้อหาก่อนหน้าจะตรงกับคู่คำพูด
)* สิ้นสุดรูปแบบและจับคู่รูปแบบทั้งหมด (คู่เครื่องหมายคำพูด) 0 ครั้งขึ้นไป
(?! ค้นหาไปข้างหน้าไม่รวมรูปแบบนี้
[^']*' [อักขระที่ไม่ใช่เครื่องหมายคำพูด] 0 ขึ้นไป ตามด้วยเครื่องหมายคำพูด
) ด้านล่างโหมดสิ้นสุด
คือฟังก์ชัน VBScript ซึ่งยอมรับพารามิเตอร์สตริง แยกสตริงตามตัวคั่นเครื่องหมายจุลภาคและตัวระบุเครื่องหมายคำพูดเดี่ยวในสตริง และส่งกลับอาร์เรย์ผลลัพธ์:
Function SplitAdv(strInput)
ติ่ม objRE
ตั้ง objRE = RegExp ใหม่
'ตั้งค่าวัตถุ RegExp
objRE.IgnoreCase = จริง
objRE.Global = จริง
objRE.Pattern = ",(?=([^']*'[^']*')*(?![^']*'))"
' วิธีการแทนที่ใช้ chr(8) เพื่อแทนที่สิ่งที่เราต้องการ ใช้เครื่องหมายจุลภาค chr(8) คือb
' อักขระ b อาจปรากฏน้อยมากในสตริง
' จากนั้นเราจะแยกสตริงตาม b และบันทึกลงในอาร์เรย์
SplitAdv = แยก(objRE.Replace(strInput, "b"), "b")
ฟังก์ชันสิ้นสุด
กล่าวโดยย่อคือ การใช้นิพจน์ทั่วไปเพื่อแยกวิเคราะห์ไฟล์ข้อมูลข้อความมีข้อดีคือมีประสิทธิภาพสูงและลดเวลาในการพัฒนาลงได้มาก ซึ่งสามารถประหยัดเวลาได้มากในการวิเคราะห์ไฟล์และแยกข้อมูลที่เป็นประโยชน์ตามเงื่อนไขที่ซับซ้อน ในสภาพแวดล้อมที่มีการพัฒนาอย่างรวดเร็วซึ่งยังคงมีข้อมูลแบบดั้งเดิมอยู่จำนวนมาก การรู้วิธีสร้างขั้นตอนการวิเคราะห์ข้อมูลที่มีประสิทธิภาพจะเป็นทักษะที่มีค่า
4. การแทนที่สตริง
ในตัวอย่างสุดท้าย เราจะดูฟังก์ชันการแทนที่ของนิพจน์ทั่วไป VBScript ASP มักใช้เพื่อจัดรูปแบบข้อความที่ได้รับจากแหล่งข้อมูลต่างๆ แบบไดนามิก ด้วยการใช้พลังของนิพจน์ทั่วไป VBScript ทำให้ ASP สามารถเปลี่ยนข้อความที่ซับซ้อนที่ตรงกันได้แบบไดนามิก การเน้นคำบางคำด้วยการเพิ่มแท็ก HTML เป็นแอปพลิเคชันทั่วไป เช่น การเน้นคำสำคัญในการค้นหาในผลการค้นหา
เพื่ออธิบายวิธีการดำเนินการนี้ ลองดูตัวอย่างที่เน้น ".NET" ทั้งหมดในสตริง สามารถรับสตริงนี้ได้จากทุกที่ เช่น ฐานข้อมูลหรือเว็บไซต์อื่น
-
ตั้งค่า regEx = RegExp ใหม่
regEx.Global = จริง
regEx.IgnoreCase = True
'รูปแบบการแสดงออกปกติ
'ค้นหาคำหรือ URL ที่ลงท้ายด้วย ".NET"
regEx.Pattern = "(b[a-zA-Z._]+?.NETb)"
' สตริงที่ใช้ทดสอบฟังก์ชันทดแทน
strText = "Microsoft ได้สร้างเว็บไซต์ใหม่ www.ASP.NET "
'เรียกวิธีการแทนที่ของนิพจน์ทั่วไป
'$1 หมายถึงการแทรกข้อความที่ตรงกันในตำแหน่งปัจจุบัน
การตอบสนองเขียน regEx แทนที่ (strText, _
"<b style='color: #000099; font-size: 18pt'>$1</b>")
%>
มีประเด็นสำคัญหลายประการที่ต้องสังเกตในตัวอย่างนี้ นิพจน์ทั่วไปทั้งหมดจะใส่ไว้ในวงเล็บคู่หนึ่ง และฟังก์ชันของนิพจน์นี้คือดักจับเนื้อหาที่ตรงกันทั้งหมดเพื่อใช้ในภายหลัง ซึ่งมีการอ้างอิงด้วย $1 ในข้อความแทนที่ สามารถใช้การสกัดกั้นที่คล้ายกันได้สูงสุด 9 ครั้งต่อการเปลี่ยนตัว อ้างอิงโดย 1 ดอลลาร์ถึง 9 ดอลลาร์ตามลำดับ วิธีการแทนที่ของนิพจน์ทั่วไปนั้นแตกต่างจากฟังก์ชันแทนที่ของ VBScript ซึ่งต้องการเพียงสองพารามิเตอร์เท่านั้น: ข้อความที่จะค้นหาและข้อความที่จะแทนที่
ในตัวอย่างนี้ เพื่อเน้นสตริง ".NET" ที่ค้นหา เราจะล้อมรอบสตริงเหล่านั้นด้วยแท็กตัวหนาและแอตทริบิวต์สไตล์อื่นๆ ด้วยการใช้เทคโนโลยีการค้นหาและแทนที่นี้ เราสามารถเพิ่มฟังก์ชันการเน้นคำสำคัญในการค้นหาลงในโปรแกรมค้นหาเว็บไซต์ หรือเพิ่มลิงก์ไปยังหน้าอื่น ๆ โดยอัตโนมัติสำหรับคำสำคัญที่ปรากฏบนหน้านั้น
ฉันหวังว่า
เทคนิคนิพจน์ทั่วไปหลายประการที่นำมาใช้ในบทความนี้จะเป็นแรงบันดาลใจให้คุณใช้นิพจน์ทั่วไปเมื่อใดและอย่างไร แม้ว่าตัวอย่างในบทความนี้จะเขียนด้วย VBScript แต่นิพจน์ทั่วไปก็มีประโยชน์ใน ASP.NET เช่นกัน ซึ่งเป็นหนึ่งในกลไกหลักสำหรับการตรวจสอบความถูกต้องของฟอร์มการควบคุมฝั่งเซิร์ฟเวอร์ และจะถูกส่งออกไปยังเนมสเปซ .Text.RegularExpressions ทั้งหมดผ่านระบบ เนมสเปซ .Text.RegularExpressions