PHP เหมาะสมกับภาษาโปรแกรมสมัยใหม่ โดยเสนอชุดฟังก์ชันสำหรับการใช้นิพจน์ทั่วไปให้กับนักพัฒนา คุณสามารถค้นหาการเกิดขึ้นของสตริงในสตริงอื่นได้โดยใช้เกณฑ์ที่ซับซ้อน
- PREG_PATTERN_ORDER;
- PREG_SET_ORDER
จัดเรียงตามตัวเลือกที่ 1 จัดกลุ่มผลการค้นหาตามหมายเลขนิพจน์ทั่วไป (ค่าเริ่มต้น) ในกรณีที่สอง ผลลัพธ์จะถูกจัดกลุ่มตามตำแหน่งในแถว
สัญลักษณ์ - องค์ประกอบเทมเพลตสิ่งสำคัญคือต้องจำไว้ว่าเทมเพลตทำงานบนสัญลักษณ์ การเขียนโปรแกรมลืมไปนานแล้วว่าประเภทข้อมูล "อักขระ" คืออะไร ภาษาสมัยใหม่ไม่ได้อยู่ภายใต้แนวคิดของ "สตริง" แต่คุณต้องเข้าใจเกี่ยวกับรูปแบบ: สัญลักษณ์ถูกจัดการที่นี่
ก่อนอื่น การสร้างเทมเพลตคือการระบุลำดับอักขระที่ต้องการ หากคุณเข้าใจสิ่งนี้อย่างชัดเจน เทมเพลตก็จะไม่มีข้อผิดพลาด ไม่ว่าในกรณีใดมันจะน้อยกว่ามาก
- a เป็นองค์ประกอบเฉพาะของเทมเพลต - สัญลักษณ์
- a-z เป็นองค์ประกอบเทมเพลต ซึ่งมีอักขระหนึ่งตัวด้วย แต่มีค่าตั้งแต่ a ถึง z เท่านั้น - ภาษาละตินทั้งหมดเป็นตัวพิมพ์เล็ก
- 0-9 คือเลขตัวเดียว เลขอะไรก็ได้ แต่ 1-3 คือ 1, 2 หรือ 3 เท่านั้น
กรณีในรูปแบบเป็นสิ่งสำคัญ อักขระตัวแรกและตัวสุดท้ายของรูปแบบมีความสำคัญ คุณสามารถระบุตำแหน่งที่เทมเพลตเริ่มต้นและสิ้นสุดได้
แม่แบบฟังก์ชันการจับคู่ PHP preg ทั้งหมดใช้ไวยากรณ์นิพจน์ทั่วไปมาตรฐาน ระบุสัญลักษณ์ใดสัญลักษณ์หนึ่งที่ระบุไว้:
- เฉพาะอักขระ a, b, c
- [^ABC] ทุกอย่างยกเว้นอักขระ A, B, C
- \w และ \W - ข้อความหรืออักขระที่ไม่ใช่ข้อความ
- \s และ \S - อักขระช่องว่างหรืออักขระที่ไม่ใช่ช่องว่าง
- \d และ \D - หลักหรือไม่ใช่หลัก
อักขระซ้ำจะแสดงด้วยเครื่องหมายปีกกา - (n,m) และอ้างอิงถึงอักขระก่อนหน้า
- n หมายถึงการซ้ำของ "ไม่น้อยกว่า";
- ม. - การซ้ำซ้อนของ "ไม่มาก"
ไวยากรณ์มีตัวเลือกมากมายสำหรับการสร้างเทมเพลต แต่วิธีที่ดีที่สุดคือเริ่มต้นด้วยพื้นฐานนั่นคือแบบง่าย ๆ ที่เขียนด้วยมือของคุณเองซึ่งขาดองค์ประกอบและชุดค่าผสมที่ซับซ้อน
พูดง่ายๆ ก็คือโดยระบุอักขระจริงที่จำเป็น ระบุจำนวนที่ต้องการ และพิจารณาว่าอักขระ “^” ตรงกับจุดเริ่มต้นและ “$” ที่ท้ายบรรทัด คุณสามารถสร้างเทมเพลตง่ายๆ ได้ ด้วยการวิเคราะห์นิพจน์ทั่วไปจริงและดีบั๊กจากผู้เชี่ยวชาญที่มีคุณสมบัติเหมาะสม คุณจะได้รับความรู้ที่ชัดเจนในการสร้างแอปพลิเคชันที่ซับซ้อนของ preg match all คลังแสงของ PHP ไม่ได้จำกัดอยู่เพียงสองฟังก์ชันนี้เท่านั้น แต่ยังเป็นฟังก์ชันที่ใช้บ่อยที่สุดอีกด้วย
การปฏิบัติง่ายๆรูปแบบจำนวนเต็ม:
- "/*/"
เป็นรูปแบบจำนวนเต็มด้วย แต่อาจมีเครื่องหมายอยู่ข้างหน้า ("+", "-") และอาจมีช่องว่างเพิ่มเติมที่ด้านหน้า/ด้านหลัง:
- /^[\s|\+|\-](0,1)*/
เช่นเดียวกัน:
- /^[\s|\+|\-](0,1)*(\.)*/ - ตัวเลขที่มีจุด
- /+@+\.(2,3)/ - ตัวเลือกสำหรับการจดจำอีเมล
การใช้เทมเพลตของคุณเองสำหรับ preg จับคู่ทั้งหมด ตัวอย่างบนอินเทอร์เน็ต การวิเคราะห์โค้ดของหน้าเว็บไซต์และแหล่งข้อมูลอื่น ๆ ช่วยให้คุณสร้างไลบรารีเทมเพลตของคุณเองได้
มีตัวเลือกมากมายในการหาข้อมูล โดยเฉพาะอย่างยิ่ง โครงสร้างสองรายการสุดท้ายที่ระบุข้างต้นสามารถสร้างแบบจำลองที่แตกต่างกันได้ ในหลายกรณี ระบบจะกำหนดการตั้งค่าให้กับเทมเพลตที่ให้การจับคู่ที่ต้องการได้รวดเร็วและแม่นยำยิ่งขึ้น การใช้ preg match ทั้งหมดใน PHP รวมถึงฟังก์ชันที่คล้ายกันในภาษาอื่นๆ จำเป็นต้องมีการฝึกฝน ความใส่ใจ และการตรวจสอบความถูกต้องของเทมเพลตเบื้องต้น
int preg_match_all (รูปแบบสตริง, หัวเรื่องสตริง, อาร์เรย์ &ตรงกัน [, int flags [, int offset]])ค้นหาหัวเรื่องสตริงสำหรับการจับคู่ทั้งหมดของรูปแบบรูปแบบ และวางผลลัพธ์ในอาร์เรย์ที่ตรงกันตามลำดับที่กำหนดโดยการรวมกันของแฟล็ก
หลังจากค้นหาคู่แรกแล้ว การค้นหาครั้งต่อไปจะไม่ดำเนินการตั้งแต่จุดเริ่มต้นของสตริง แต่จากจุดสิ้นสุดของเหตุการณ์ที่พบครั้งล่าสุด
พารามิเตอร์สถานะทางเลือกสามารถรวมค่าต่อไปนี้ได้ (โปรดทราบว่าการใช้ PREG_PATTERN_ORDER ในเวลาเดียวกันกับ PREG_SET_ORDER นั้นไม่มีความหมาย):
PREG_PATTERN_ORDER
หากตั้งค่าแฟล็กนี้ ผลลัพธ์จะถูกเรียงลำดับดังนี้: องค์ประกอบ $matches มีอาร์เรย์ของรูปแบบที่สมบูรณ์ องค์ประกอบ $matches มีอาร์เรย์ของรูปแบบย่อยแรกที่เกิดขึ้น เป็นต้น
ส่งกลับจำนวนครั้งของรูปแบบที่พบ (อาจเป็นศูนย์) หรือ FALSE หากเกิดข้อผิดพลาดใดๆ ระหว่างการดำเนินการ
ตัวอย่างที่ 2: การจับคู่แท็ก HTML อย่างโลภ |