วิธีใช้ฟังก์ชัน preg_match_all() ใน PHP

Withi Chi Fangkchan Preg Match All Ni Php



preg_match_all() เป็นฟังก์ชันในตัวใน PHP ที่ใช้จับคู่รูปแบบเฉพาะในสตริง คุณสามารถใช้ฟังก์ชันนี้เพื่อจับคู่นิพจน์ทั่วไปและแยกข้อมูลจากสตริง มันสามารถประหยัดเวลาและความพยายามในกรณีที่คุณต้องการค้นหารูปแบบที่เกิดขึ้นหลายครั้งและใช้กันอย่างแพร่หลายในการแยกวิเคราะห์ข้อความและแอปพลิเคชันการแยกข้อมูลของ PHP

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์สำหรับการใช้ preg_match_all ใน PHP:







preg_match_all ( ลวดลาย , ป้อนข้อมูล , การแข่งขัน , ธง , ชดเชย )

เดอะ preg_match_all ยอมรับพารามิเตอร์ต่อไปนี้ สามตัวเป็นพารามิเตอร์บังคับ และสองตัวเป็นตัวเลือก:



  • ลวดลาย : เป็นพารามิเตอร์บังคับ มันมีนิพจน์ทั่วไปที่ต้องค้นหา
  • ป้อนข้อมูล : ตัวที่สองยังเป็นพารามิเตอร์บังคับ เนื่องจากเป็นสตริงที่ดำเนินการค้นหา
  • การแข่งขัน : มันเก็บผลลัพธ์ในอาร์เรย์ที่มีการแข่งขันทั้งหมด
  • ธง : อธิบายวิธีการค้นหาหรือจับคู่อาร์เรย์ที่มีโครงสร้าง มันแก้ไขลักษณะการทำงานของการค้นหาฟังก์ชัน สามารถใช้แฟล็กต่อไปนี้:
  • ชดเชย : เป็นพารามิเตอร์ทางเลือกที่ระบุตำแหน่งเริ่มต้นของการค้นหา
ธง คำอธิบาย
PREG_PATTERN_ORDER อาร์เรย์ผลลัพธ์มีการจับคู่ทั้งหมดของอาร์เรย์สำหรับแต่ละองค์ประกอบของนิพจน์ทั่วไป
PREG_SET_ORDER องค์ประกอบของอาร์เรย์ที่ตรงกันแต่ละรายการมีรายการที่ตรงกันจากทุกการจัดกลุ่มสำหรับรายการที่ตรงกันที่พบของสตริง
PREG_OFFSET_CAPTURE โดยจะส่งคืนการจับคู่ที่มีตำแหน่งออฟเซ็ตไบต์ที่สอดคล้องกันในสตริงหัวเรื่อง
PREG_UNMATCHED_AS_NULL รูปแบบที่ไม่ตรงกันจะรายงานเป็น NULL

ตัวอย่างที่ 1

พิจารณาตัวอย่างต่อไปนี้ของการใช้ preg_match_all() ฟังก์ชั่นใน PHP ในรหัสนี้ เรากำลังค้นหาคำว่า ลีนุกซ์ ในสตริง ฟังก์ชันนี้แสดงผลจำนวนที่ตรงกับคำที่พบ ลีนุกซ์ :





$string = 'สวัสดีผู้ที่ชื่นชอบ Linux ยินดีต้อนรับสู่ LinuxHint!' ;

รูปแบบ $ = '/ลินุกซ์/' ;

$ตรงกัน = อาร์เรย์ ( ) ;

preg_match_all ( รูปแบบ $ , $string , $ตรงกัน ) ;

พิมพ์_r ( $ตรงกัน [ 0 ] ) ;

?>





ตัวอย่างที่ 2

ในโค้ดตัวอย่างนี้ เรากำลังค้นหาคำว่า E ในสตริง i ขนาดเล็กใช้เพื่อทำให้การค้นหาไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ มันจะคืนค่าสตริงทั้งหมดของคำว่า E หรือ e:



$string = 'ยินดีต้อนรับสู่สหรัฐอเมริกา' ;

$patternRex = '/อี/ไอ' ;

$matchFound = preg_match_all ( $patternRex , $string , $ตรงกัน ) ;

ถ้า ( $matchFound ) {

เสียงสะท้อน '<ก่อน>' ;

พิมพ์_r ( $ตรงกัน ) ;

}

?>



ตัวอย่างที่ 3

หากไม่มีรูปแบบที่คุณกำลังค้นหาในสตริง ฟังก์ชันจะคืนค่าเป็นเท็จ ซึ่งแสดงว่ามีข้อผิดพลาด ในการจัดการสิ่งนี้ คุณสามารถใช้คำสั่ง if-else หากไม่พบรูปแบบ คุณสามารถพิมพ์ข้อความโดยใช้คำสั่ง else เพื่อแจ้งให้ผู้ใช้ทราบว่าไม่พบรูปแบบ



$string = 'PHP เป็นภาษาสคริปต์ยอดนิยม' ;

$patternRex = '/ฉี่/' ;

$matchFound = preg_match_all ( $patternRex , $string , $ตรงกัน ) ;

ถ้า ( $matchFound ) {

เสียงสะท้อน '<ก่อน>' ;

เสียงสะท้อน 'พบการจับคู่' ;

พิมพ์_r ( $ตรงกัน ) ;

} อื่น {

เสียงสะท้อน 'ไม่พบการแข่งขัน' ;

}

?>

บันทึก : เดอะ <ก่อน> แท็กในโค้ดด้านบนใช้เพื่อจัดรูปแบบเอาต์พุต

บรรทัดล่าง

Regular Expression เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการค้นหาและจัดการข้อความใน PHP เดอะ preg_match_all() ฟังก์ชันเป็นฟังก์ชันในตัวของ PHP ที่ใช้ในการจับคู่นิพจน์ทั่วไปกับสตริงและดึงข้อมูลที่เกิดขึ้นทั้งหมดของรูปแบบ และหากรูปแบบนั้นไม่มีอยู่ ก็จะส่งค่ากลับเป็นเท็จ ทำความเข้าใจกับ preg_match_all() จะช่วยให้ผู้ใช้สามารถจัดการและประมวลผลข้อมูลข้อความใน PHP ได้ดีขึ้น