..


ลิงก์ผู้สนับสนุน

นิพจน์ปกติสำหรับตัวกรอง ISAPI Rewrite

บทความที่เขียนโดย Max Bossi
หน้า 1 จาก 3

ใน บทความก่อนหน้านี้ โดยเพื่อนและเพื่อนร่วมงานของฉัน Luca Ruggiero เราเห็นวิธีที่จะเริ่มต้นการทำงานกับตัวกรอง ISAPI สำหรับ URL เขียนใหม่กับ IIS

บทความนี้ยืนเป็นการเรียงลำดับของความต่อเนื่องของเส้นทางเริ่มต้นแล้วและมีจุดมุ่งหมายเพื่ออธิบายทฤษฎีน้อย'เพื่อช่วยให้คุณสามารถเขียนคำแนะนำสำหรับการเขียนใหม่และซับซ้อนเพิ่มมากขึ้นอย่างชัดเจนโดยการสนับสนุนของนิพจน์ปกติ

อักขระพิเศษ

เราเริ่มต้นด้วยการมองเห็นแผ่นซีดี ตัวอักษรพิเศษตัวอักษรเหล่านั้นที่มีความหมายพิเศษที่เกี่ยวกับข้อความที่ค่าของพวกเขาคลาสสิก :

ตัวอักษร ความหมาย
. ตัวอักษรใด ๆ
* * * * เป็นศูนย์หรือมากกว่าซ้ำของตัวอักษรที่ด้านซ้าย
+ หนึ่งหรือมากกว่าหนึ่งซ้ำของตัวอักษรไปทางซ้าย
? ตัวอักษรไปทางซ้ายอาจจะเป็นปัจจุบันหรือไม่
| ทางเลือกระหว่างสิ่งที่เป็นขวาและซ้าย
^ ด้านบนของเส้นหรือสัญลักษณ์ของการปฏิเสธหากใช้ภายในชุดของตัวอักษร
$ จุดสิ้นสุดของบรรทัด
(S) พวกเขาจะใช้สร้างนิพจน์ย่อยหรือการระบุตัวแปรที่จะถูกเรียกว่ามี $ N ที่
{และ} พวกเขาจะใช้ในการระบุความยาวต่ำสุดและสูงสุดของสตริงไปทางซ้าย
[และ] มันมีชุดของตัวอักษร

ตัวอย่างเพื่อให้เข้าใจถึงความสำคัญของตัวอักษรพิเศษเหล่านี้
 



 .

 
หมายถึงตัวอักษรใด ๆ และดังนั้นจึงยอมรับ (uno!) ตัวอักษรใด ๆ
 



 .*

 
การแสดงออกดังกล่าวข้างต้นคือการตรวจสอบเสมอเนื่องจากมันยอมรับสตริงที่ว่างเปล่าเป็นสตริงใด ๆ ที่เป็นของเรารวมถึงสัญลักษณ์ซ้ำไปเรื่อย ๆ (จากศูนย์ถึงอินฟินิตี้) ของอักขระใด ๆ
 



 * * * * AB

 
การแสดงออกนี้มีการทดสอบที่มีผลดังต่อไปนี้ :"a","ab","ABB","abbb","abbbb ",...
 



 AB +

 
เกิดขึ้นกับ"AB","ABB","abbb ",... แต่ไม่ได้ด้วย""!
 



 ? AB

 
เกิดขึ้นกับ"a"หรือ"ab"
 



 {AB} 2.4

 
เกิดขึ้นกับ"ABB","abbb","abbbb"
 



 ^ * * * * อ.

 
เกิดขึ้นกับสตริงที่ขึ้นต้นด้วยตัวอักษร"A"ใด ๆ
 



 Z $ .*

 
เกิดขึ้นกับสตริงที่ลงท้ายด้วยตัวอักษร"Z"ใด ๆ
 



 ^ C * A $

 
เกิดขึ้นกับสตริงที่เริ่มต้นด้วย"C"และลงท้ายด้วยตัวอักษร"a"ใด ๆ ตัวอย่างเช่น :"บ้าน","กระดาษ","กาว", ฯลฯ
 



 abc | def

 
เกิดขึ้นกับ"ABC"หรือมี"def"
 



 (B | C)

 
เกิดขึ้นกับ"AB"หรือมี"AC" เพื่อให้บรรลุนี้เราใช้คู่ของวงเล็บเพื่อสร้างนิพจน์ย่อยในฌาน, ในตัวอย่างของเราเลือกระหว่าง"b"และ"C"
 



 [Az]

 
ด้วยการใช้เครื่องหมายวงเล็บสี่เหลี่ยมที่เราได้สร้างชุดของตัวอักษร ในตัวอย่างที่เราได้จัดให้มีช่วงของอักขระตั้งแต่"A"ถึง"z"และจากนั้นรวบรวมตัวอักษรทั้งหมด
ทราบว่าการใช้"z"จะไม่เท่ากับ"อาริโซน่า"ในกรณีแรกที่คุณจะตรงกับตัวอักษรตัวพิมพ์เล็กเท่านั้นในหลังเดียวกับกรณีที่
 



 [a - zA - Z]

 
การแสดงออกดังกล่าว แต่แสดงให้เราเห็นวิธีการที่จะยอมรับตัวอักษรทั้งหมดของเหล่านี้เป็นกรณีตาย
 



 [0-9]

 
ระยะนี้รวมถึงตัวเลขระหว่าง 0 และ 9 ใด ๆ

 



 [^ 0-9]

 
ระยะนี้รวมถึงตัวยกเว้นตัวเลขที่ใด ๆ เราประสบความสำเร็จนี้ได้โดยใช้การปฏิเสธที่จุดเริ่มต้นของการตั้งค่าตัวอักษรพิเศษของเรา ^ ^

แน่นอนชัดเจนและการรวมตัวอย่างที่ต่างๆดังกล่าวข้างต้นคุณจะพบว่ามันเป็นไปได้ที่จะคาดการณ์เป็นจำนวนอนันต์เกือบเป็นไปได้

สุดท้ายของหลักสูตรเราจะต้องพิจารณาความเป็นไปได้ว่าอักขระที่เห็นข้างต้นเราสามารถให้บริการในมูลค่าของพวกเขาคือคลาสสิกเป็นตัวอักษรที่เรียบง่าย ในกรณีนี้เราจะใช้ประโยชน์จากอักขระหนี (\) ก่อนอักขระพิเศษที่เราต้องการที่จะใช้เป็นตัวอักษรทั่วไป
ตัวอย่างเช่นเราดูวิธีการเขียนในรูปแบบของ esepressione, สตริง"page.html" ที่เรารู้ว่าจุดที่เป็นตัวละครที่พิเศษและดังนั้นเพื่อใช้เป็นจุดง่ายๆที่เราต้องทำนี้ :

 



 หน้า \. HTML

 
หมายเหตุแน่นอนว่าตัวหนีเดียวกันในการเปิดตัวอักษรพิเศษและดังนั้นถ้าคุณต้องการที่จะใช้ในค่าที่แท้จริงของมันเหมือนกันเราจะต้องมีการขอความช่วยเหลือไปสองหนีออกมา :
 



 \ \

 

ในประเภทเดียวกัน ...
E - Learning
ASP (ขั้นสูง) ASP (ขั้นสูง)
หลักสูตรเต็มสำหรับการสร้างเว็บไซต์แบบไดนามิก เริ่มต้นจาก 39 €
ASP ศูนย์ (eBook) ASP ศูนย์ (eBook)
Microsoft ASP และ VBScript ที่จะเรียนรู้จากรอยขีดข่วน ที่เพียง 29 €
ASP.NET (หลักสูตร) ASP.NET (หลักสูตร)
หลักสูตรเต็มสำหรับสร้างเว็บแอพพลิเคชันจาก 49 €
ลิงก์ผู้สนับสนุน