รูปแบบโครงสร้างของ Regular Expression (Regular Expression Syntax) ของ ASP.NET
วันที่เขียน 13/1/2554 16:59:25     แก้ไขล่าสุดเมื่อ 2/5/2567 0:10:42
เปิดอ่าน: 11565 ครั้ง

Regular Expression Syntax

     เรื่องราวของ Regular Expression นั้น มีมานานก่อนการเกิดขึ้นของ .NET เพราะมีพื้นฐานมาจากวิชา Theory of Computation ซึ่งมีการนำไปใช้ในการทำ string matching กันอย่างมาก โดยมีภาษา Perl ที่ได้รับการยกย่องว่าเป็นเทพในเรื่องนี้ และก็กลายเป็นรูปแบบที่ .NET ยืมมาใช้ด้วย (Perl5 compatible) การทำ string matching นั้น มีประโยชน์มากในการกลั้นกรอง หรือตรวจสอบข้อความที่ต้องการ

     ที่ผมใช้บ่อยๆเห็นจะเป็นการตรวจสอบ user input สำหรับ .NET แล้ว กรณีที่เป็น Web Application สามารถใช้คอนโทรลกลุ่ม validation เช่น RequiredFieldValidator, RangeValidator เป็นต้น ซึ่งหนึ่งในนั้นมีคอนโทรลที่ชื่อ RegularExpressionValidator อันมีความสามารถ ในการสกัดเอาเฉพาะข้อความที่ต้องการได้ รูปแบบสไตล์ AJAX ด้วย (เพราะเบื้องหลังใช้ความสามารถของ JavaScript) โดยต้องเขียน Regular Expression ไว้ที่ properties ชื่อ ValidationExpression ส่วนกรณีเป็น Windows Application นั้น จะใช้คลาส System.Text.RegularExpressions.Regex มาตรวจสอบเอง (ที่จริงกรณีเป็น Web Application ก็สามารถใช้คลาสนี้ตรวจสอบเองที่ฝั่งเซิร์ฟเวอร์ก็ได้)

การเขียน Regular Expression และตัวอย่างการใช้งาน

  • \ คือ สัญลักษณ์บ่งบอกอักขระพิเศษที่ต่อท้ายมัน เช่น \\ หมายถึง \, \( หมายถึง (, \n หมายถึง newline, \r หมายถึง return
  • ^ คือ สัญลักษณ์บ่งบอกว่าเป็น จุดเริ่มต้นของข้อความ (กรณีที่ใช้อ๊อบเจ็ค Regex แล้วกำหนดพร็อบเพอร์ตี้ Option เป็น MultiLine จะถือว่า \n หรือ \r คือจุดเริ่มต้นเสมอ)
  • $ คือ สัญลักษณ์ของ จุดสิ้นสุดของข้อความ ซึ่งคล้ายกับ ^ (ส่วนใหญ่สัญลักษณ์ ^ หรือ $ จะใช้กับข้อความที่มีหลายบรรทัด)
  • * คือ สัญลักษณ์ที่บ่งบอกว่า อักขระหน้ามันจะมีซ้ำกี่ครั้งก็ได้ หรือไม่มีเลยก็ได้ (หรือพูดง่ายๆ ว่าตั้งแต่ 0 ตัวขึ้นไป) ตัวอย่างเช่น ab* หมายถึง a, ab, abb, abbb, abbb... อีกตัวอย่าง (ab)*c หมายถึง c, abc, ababc, abab....c เป็นต้น
  • + คือ สัญลักษณ์ที่คล้ายๆ * แต่ต่างกันที่ + จะต้องมีอย่างน้อย 1 ตัว (หรือตั้งแต่ 1 ตัวขึ้นไป) ถ้าใช้ตัวอย่างคล้ายๆ ด้านบนเช่น ab+ หมายถึง ab, abb, abbb... อีกตัวอย่าง (ab)+c หมายถึง abc, ababc, abab.....c
  • ? คือ สัญลักษณ์ที่บ่งบอกว่า อักขระหน้ามันจะมีหรือไม่ก็ได้ แต่ถ้ามีจะมีแค่ชุดเดียว ตัวอย่างเช่น ab? หมายถึง a หรือ ab เท่านั้น อีกตัวอย่าง a(bc)? หมายถึง a หรือ abc เท่านั้น (ข้อสังเกต สัญลักษณ์จะครอบคลุมแค่อักขระหน้ามันตัวเดียวเท่านั้น เช่น ab+ แค่อักษร b ตัวเดียวเท่านั้นที่มีอย่างน้อย 1 ตัว ถ้าต้องการให้ครอบคลุมตัวอักษรที่ต้องการให้ใส่วงเล็บคลุมไว้)

ตัวอย่างการนำไปใช้จริง

  • email : รูปแบบ "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
  • ตัวอย่างที่ valid ผ่าน เช่น ex-th3.d@thailand5-go.co.th
  • ตัวอย่างที่ valid ไม่ผ่าน เช่น ex-@gmail.

แหล่งข้อมูล

  1. Introduction to Regular Expressions
  2. Regular Expression Syntax
  3. Use Regular Expressions to Constrain Input in ASP.NET

คำสำคัญ :
กลุ่มบทความ :
หมวดหมู่ :
แชร์ :
https://erp.mju.ac.th/acticleDetail.aspx?qid=37
ความคิดเห็นทั้งหมด (0)
ไม่มีข้อมูลตามเงื่อนไขที่ท่านกำหนด
รายการบทความการแลกเปลี่ยนเรียนรู้หมวดหมู่ : วิทยาศาสตร์ เทคโนโลยี
ความรู้จากการเข้าร่วมอบรม/สัมมนา/ประชุมวิชาการ » การเผยแพร่ความรู้ที่ได้จากการเข้าร่วมประชุมวิชาการระดับชาติวิจัยรำไพพรรณี ครั้งที่ 17 เนื่องในวโรกาสคล้ายวันพระราชสมภพสมเด็จพระนางเจ้ารำไพพรรณี ครบ 119 ปี เรื่อง “งานวิจัยและนวัตกรรมสู่การพัฒนาคุณภาพชีวิตด้วยโมเดลเศรษฐกิจ BCG Bio-Circular-Green Economy”
ตามที่คณะวิทยาศาสตร์ ได้อนุญาติให้ข้าพเจ้า นางอัจฉรา แกล้วกล้า ตำแหน่ง ผู้ช่วยศาสตราจารย์ เข้าร่วมการประชุมวิชาการระดับชาติวิจัยรำไพพรรณี ครั้งที่ 17 เนื่องในวโรกาสคล้ายวันพระราชสมภพสมเด็จพระนางเจ้...
  บทความการแลกเปลี่ยนเรียนรู้ทั่วไป   วิทยาศาสตร์ เทคโนโลยี
ผู้เขียน อัจฉรา แกล้วกล้า  วันที่เขียน 31/3/2567 11:09:58  แก้ไขล่าสุดเมื่อ 1/5/2567 11:55:36   เปิดอ่าน 54  ครั้ง | แสดงความคิดเห็น 0  ครั้ง