⊗ppPmRgRP 253 of 447 menu

การใช้กลุ่มจับใน preg_replace บน PHP

เมื่อทำงานกับฟังก์ชัน preg_replace, ถ้าเราใส่บางอย่างลงในกลุ่มจับใน Regular Expression, ในสตริงแทนที่เราสามารถแทรกเนื้อหาของ กลุ่มจับนั้นได้โดยเขียนเครื่องหมายดอลลาร์ $ และหมายเลข กลุ่มจับ ตัวอย่างเช่น $0 - กลุ่มจับที่ 0, $1 - กลุ่มจับแรก, $2 - กลุ่มจับที่สอง และต่อๆ ไป

เพื่ออะไรและจะใช้มันอย่างไร ลองดูตัวอย่าง

ตัวอย่าง

ลองหาเลขทั้งหมดและแทนที่ด้วย ตัวเลขเดียวกันนั้น แต่อยู่ในวงเล็บปีกกา โดย ตัวเลขทั้งหมดที่พบเราจะแทนที่ด้วย ตัวมันเอง แต่ในวงเล็บปีกกา:

<?php $str = '1 23 456 xax'; $res = preg_replace('#(\d+)#', '{$1}', $str); ?>

ผลลัพธ์ในตัวแปรจะเป็นดังนี้:

'{1} {23} {456} xax'

ตัวอย่าง

ลองหาสตริงทั้งหมดที่แทน ตัวเลขที่มี 'x' รอบๆ และแทนที่ ตัวเลขเหล่านั้นด้วยตัวมันเอง แต่มีเครื่องหมาย '!' รอบ:

<?php $str = 'x1x x23x x456x xax'; $res = preg_replace('#x(\d+)x#', '!$1!', $str); ?>

ผลลัพธ์ในตัวแปรจะเป็นดังนี้:

'!1! !23! !456! xax'

ตัวอย่าง

ลองแก้ปัญหาต่อไปนี้: มีสตริง รูปแบบ 'aaa@bbb' - ตัวอักษร จากนั้นเครื่องหมาย @, จากนั้นตัวอักษร ต้องสลับตัวอักษร ก่อน '@' และหลัง มาทำกัน:

<?php $str = 'aaa@bbb ccc@ddd'; $res = preg_replace('#([a-z]+)@([a-z]+)#', '$2@$1', $str); ?>

ผลลัพธ์ในตัวแปรจะเป็นดังนี้:

'bbb@aaa ddd@ccc'

โจทย์ฝึกปฏิบัติ

กำหนดสตริง:

<?php $str = '12 34 56 78'; ?>

สลับตำแหน่งตัวเลขในตัวเลขสองหลักทั้งหมด

กำหนดสตริงวันที่:

<?php $str = '31.12.2025'; ?>

แปลงวันที่นี้เป็น '2025.12.31'

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ