การประชุมเชิงปฏิบัติการซอฟต์แวร์
บทแนะนำซอฟต์แวร์ => Php => หวข้อที่ต้งโดย: Ovtak เมื่ ี.ค 29, 2025, 02:08 หลังเ่ยง
ในโลกของการเขียนโปรแกรม PHP Regex (หรือ Regular Expressions) เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการจัดการข้อความ ไม่ว่าจะเป็นการตรวจสอบรูปแบบข้อมูล เช่น อีเมล รหัสไปรษณีย์ หรือการค้นหาและแทนที่ข้อความในสตริง การเรียนรู้ PHP Regex จะช่วยให้คุณทำงานกับข้อมูลได้อย่างยืดหยุ่นและแม่นยำมากขึ้น บทความนี้จะพาคุณไปรู้จักกับการใช้งาน Regex ใน PHP พร้อมตัวอย่างโค้ดที่เข้าใจง่ายPHP Regex คืออะไร?Regex หรือชื่อเต็มว่า Regular Expressions คือรูปแบบการเขียนที่ใช้กำหนดแพทเทิร์นของข้อความ เช่น คุณต้องการตรวจสอบว่าสตริงมีตัวเลขกี่ตัว หรือมีคำว่า "สวัสดี" อยู่ในนั้นหรือไม่ ใน PHP คุณสามารถใช้ฟังก์ชัน เช่น preg_match(), preg_replace() และ preg_split() เพื่อทำงานกับ Regex ได้อย่างมีประสิทธิภาพการใช้งานพื้นฐานของ PHP Regex- preg_match() - ใช้สำหรับตรวจสอบว่าแพทเทิร์นตรงกับสตริงหรือไม่
- preg_replace() - ใช้สำหรับแทนที่ข้อความที่ตรงกับแพทเทิร์น
- preg_split() - ใช้สำหรับแยกสตริงตามแพทเทิร์นที่กำหนด
เราจะมาดูตัวอย่างการใช้งานทั้งสามฟังก์ชันนี้กัน
ตัวอย่างโค้ด: การตรวจสอบอีเมลด้วย preg_match()สมมติว่าคุณต้องการตรวจสอบว่าอีเมลที่ผู้ใช้ป้อนมานั้นถูกต้องตามรูปแบบหรือไม่ ลองดูโค้ดด้านล่างนี้:<?php
$email = "[email protected]";
$pattern = "/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/";
if (preg_match($pattern, $email)) {
echo "อีเมลนี้ถูกต้อง!";
} else {
echo "อีเมลไม่ถูกต้อง กรุณาตรวจสอบอีกครั้ง";
}
?>
คำอธิบาย:- /^ หมายถึงจุดเริ่มต้นของสตริง
- [a-zA-Z0-9._-]+ อนุญาตให้ใช้ตัวอักษร ตัวเลข และสัญลักษณ์บางตัวก่อน "@"
- @ ต้องมีเครื่องหมายนี้ในอีเมล
- [a-zA-Z0-9.-]+ อนุญาตให้ใช้ตัวอักษรและตัวเลขในชื่อโดเมน
- \.[a-zA-Z]{2,}$/ ต้องลงท้ายด้วยจุดและตัวอักษรอย่างน้อย 2 ตัว (เช่น .com, .th)
ตัวอย่างโค้ด: การแทนที่ข้อความด้วย preg_replace()ถ้าคุณต้องการลบคำหยาบหรือแทนที่คำบางคำในข้อความ ลองใช้โค้ดนี้:<?php
$text = "สวัสดีครับ วันนี้อากาศไม่ดีเลย";
$pattern = "/ไม่ดี/";
$replacement = "ดีมาก";
$new_text = preg_replace($pattern, $replacement, $text);
echo $new_text; // ผลลัพธ์: สวัสดีครับ วันนี้อากาศดีมากเลย
?>
คำอธิบาย:- $pattern กำหนดคำว่า "ไม่ดี" ที่ต้องการแทนที่
- $replacement คือคำใหม่ที่เราจะใส่เข้าไปแทน
- preg_replace() จะค้นหาและแทนที่คำใน $text
ตัวอย่างโค้ด: การแยกสตริงด้วย preg_split()สมมติว่าคุณมีสตริงที่มีตัวคั่นเป็นเครื่องหมายจุลภาค และต้องการแยกมันออกมาเป็นอาร์เรย์:<?php
$string = "มกราคม,กุมภาพันธ์,มีนาคม";
$pattern = "/,/";
$months = preg_split($pattern, $string);
print_r($months);
// ผลลัพธ์:
// Array ( [0] => มกราคม [1] => กุมภาพันธ์ [2] => มีนาคม )
?>
คำอธิบาย:- $pattern กำหนดเครื่องหมายจุลภาค (,) เป็นตัวคั่น
- preg_split() จะแยกสตริงตามแพทเทิร์นและคืนค่าเป็นอาร์เรย์
เคล็ดลับการเขียน PHP Regex ให้มีประสิทธิภาพ- ทดสอบแพทเทิร์นก่อนใช้งาน - ใช้เครื่องมือออนไลน์ เช่น regex101.com เพื่อทดสอบแพทเทิร์นของคุณ
- ระวังการใช้หน่วยความจำ - แพทเทิร์นที่ซับซ้อนเกินไปอาจทำให้โปรแกรมช้าลง
- เพิ่มคำอธิบายในโค้ด - เพื่อให้คนอื่น (หรือตัวคุณเองในอนาคต) เข้าใจโค้ดได้ง่ายขึ้น
สรุปPHP Regex เป็นเครื่องมือที่ทรงพลังสำหรับนักพัฒนาที่ต้องการจัดการข้อความอย่างมีประสิทธิภาพ ไม่ว่าจะเป็นการตรวจสอบรูปแบบ การค้นหา หรือการแยกข้อมูล ด้วยฟังก์ชันอย่าง preg_match(), preg_replace() และ preg_split() คุณสามารถทำงานได้หลากหลายตามความต้องการ ลองนำตัวอย่างโค้ดในบทความนี้ไปปรับใช้ในโปรเจกต์ของคุณ แล้วคุณจะเห็นว่าการใช้งาน Regex ใน PHP นั้นง่ายและสะดวกกว่าที่คิด!หากคุณมีคำถามเพิ่มเติมเกี่ยวกับ การใช้งาน Regex หรือต้องการตัวอย่างโค้ดเพิ่มเติม แจ้งมาได้เลย!