รูปแบบโครงสร้างของ Regular Expression (Regular Expression Syntax) ของ ASP.NET
วันที่เขียน 13/1/2554 16:59:25     แก้ไขล่าสุดเมื่อ 17/4/2568 6:33:52
เปิดอ่าน: 12274 ครั้ง

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://e-manage.mju.ac.th/acticleDetail.aspx?qid=37
ความคิดเห็นทั้งหมด (0)
ไม่มีข้อมูลตามเงื่อนไขที่ท่านกำหนด
รายการบทความการแลกเปลี่ยนเรียนรู้หมวดหมู่ : วิทยาศาสตร์ เทคโนโลยี
GIS issue » สรุปผลการเข้าร่วมฝึกอบรมหลักสูตร “การพัฒนาโปรแกรมด้านการวิเคราะห์ข้อมูลเชิงพื้นที่ทางอินเทอร์เน็ต” 17-21 มีนาคม 2568
สรุปผลการเข้าร่วมฝึกอบรมหลักสูตร “การพัฒนาโปรแกรมด้านการวิเคราะห์ข้อมูลเชิงพื้นที่ทางอินเทอร์เน็ต” 17-21 มีนาคม 2568 เป็นหลักสูตรฝึกอบรมโดยสำน้กพัฒนาเทคโนโลยีอวกาศและภูมิสารสนเทศ เพื่อการพัฒนาโปรแก...
Geodatabase  leaflet  Mapserver  PostGIS  PostgreSQL  Web Map Service     บทความการแลกเปลี่ยนเรียนรู้ทั่วไป   วิทยาศาสตร์ เทคโนโลยี
ผู้เขียน ณัฐกฤตา โกมลนาค  วันที่เขียน 7/4/2568 22:34:16  แก้ไขล่าสุดเมื่อ 17/4/2568 1:26:37   เปิดอ่าน 62  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การเผยแพร่ความรู้ที่ได้จากการเข้าร่วมประชุมวิชาการ/อบรม/สัมมนา » การเพิ่มประสิทธิภาพการสอนและการเรียนรู้ด้วย Microsoft Copilot ในการอบรมเชิงปฏิบัติการ "Enhance Teaching and Learning with Microsoft Copilot"
การอบรมเชิงปฏิบัติการ "Enhance Teaching and Learning with Microsoft Copilot" ที่จัดโดย Microsoft Learn เป็นโอกาสสำคัญสำหรับนักการศึกษาในการเรียนรู้และนำเทคโนโลยีปัญญาประดิษฐ์มาใช้ในการสอนและการเรีย...
AI ปัญญาประดิษฐ์  การเรียนการสอนดิจิทัล  การเรียนรู้ Microsoft  เทคโนโลยี Copilot  ประสิทธิภาพ     บทความการแลกเปลี่ยนเรียนรู้ทั่วไป   วิทยาศาสตร์ เทคโนโลยี
ผู้เขียน จักรกฤช เตโช  วันที่เขียน 4/4/2568 10:52:42  แก้ไขล่าสุดเมื่อ 16/4/2568 21:38:22   เปิดอ่าน 444  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
ประชุมวิชาการระดับนานาชาติ “ด้านวิทยาศาสตร์ เทคโนโลยีและนวัตกรรมทางเทคโนโลยี ครั้งที่ 50 (STT50)” » เข้าร่วมประชุมวิชาการระดับนานาชาติ ด้านวิทยาศาสตร์ เทคโนโลยีและนวัตกรรมทางเทคโนโลยี ครั้งที่ 50 (STT50)
เข้าร่วมประชุมวิชาการระดับนานาชาติด้านวิทยาศาสตร์ เทคโนโลยีและนวัตกรรมทางเทคโนโลยี ครั้งที่ 50 (STT50) และนำเสนอผลงานวิจัย เมื่อวันที่ 25 - 27 พฤศจิกายน 2567 ณ โรงแรมดิเอ็มเพรส จังหวัดเชียงใหม่
STT50  การประชุมวิชาการระดับนานาชาติ  งานวิจัย     บทความการแลกเปลี่ยนเรียนรู้ทั่วไป   วิทยาศาสตร์ เทคโนโลยี
ผู้เขียน ธวัลรัตน์ รัตนเดชานาคินทร์  วันที่เขียน 10/1/2568 14:11:20  แก้ไขล่าสุดเมื่อ 16/4/2568 19:15:06   เปิดอ่าน 244  ครั้ง | แสดงความคิดเห็น 0  ครั้ง