PHP Regex: การใช้งานและตัวอย่างโค้ดสำหรับผู้เริ่มต้น

เริ่มโด Ovtak, ี.ค 29, 2025, 02:08 หลังเ่ยง

หัวอก่อนหน้า - หัวข้อถัดไ

Ovtak

ในโลกของการเขียนโปรแกรม 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 หรือต้องการตัวอย่างโค้ดเพิ่มเติม แจ้งมาได้เลย!