⊗ppPmRgSHy 238 of 447 menu

ยัติภังค์ภายในชุดใน regex PHP

ยัติภังค์ - ยังเป็นอักขระพิเศษภายใน [] (แต่ข้างนอก - ไม่ใช่) หากคุณต้องการยัติภังค์เองเป็นสัญลักษณ์ - ให้วางมันในที่ที่ มันจะไม่ถูกตีความเป็นตัวแบ่งกลุ่ม

ทำไมนี่ถึงสำคัญ: คุณสามารถสร้างกลุ่มอักขระโดยที่ไม่รู้ตัว ตัวอย่างเช่น แบบนี้ - [:-@] - คุณคิดว่าคุณเลือก colon, ยัติภังค์ และ at sign แต่จริง ๆ แล้วได้กลุ่มอักขระระหว่าง : และ @ กลุ่มนี้ประกอบด้วย อักขระต่อไปนี้: :, ;, ?, <, =, >

มันมาจากไหน? จากตาราง ASCII - colon มีหมายเลขน้อยกว่า at sign - และกลายเป็นกลุ่ม นั่นคือกลุ่มทั้งหมด ถูกสร้างขึ้นตามตาราง ASCII (หากต้องการ คุณสามารถใช้สิ่งนี้ได้)

จะจัดการกับสิ่งนี้อย่างไร: วางอักขระยัติภังค์ ในตำแหน่งที่มันจะไม่ถูกตีความเป็น อักขระของกลุ่มอย่างแน่นอน เช่น ที่เริ่มต้นหรือที่ท้าย (นั่นคือหลังจาก [ หรือก่อน ])

คุณยังสามารถ escape ยัติภังค์ได้ - จากนั้น มันจะหมายถึงตัวมันเองโดยไม่ขึ้นกับ ตำแหน่ง ตัวอย่างเช่น แทนที่ [:-@] ด้วย [:\-@] - และจะไม่มีกลุ่มอีกต่อไป แต่ จะมีสามอักขระ - colon, ยัติภังค์ และ at sign @

ตัวอย่าง

ในตัวอย่างต่อไปนี้รูปแบบการค้นหาคือ: ตัวเลข 1 ตามด้วยตัวอักษรจาก 'a' ถึง 'z' ตามด้วยตัวเลข 2:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[a-z]2#', '!', $str); ?>

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

'! 1-2 ! !'

ตัวอย่าง

ตอนนี้เรามา escape ยัติภังค์กัน ผลลัพธ์ รูปแบบการค้นหาคือ: ตัวเลข 1 ตามด้วย ตัวอักษร 'a' หรือยัติภังค์ หรือตัวอักษร 'z' ตามด้วยตัวเลข 2:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[a\-z]2#', '!', $str); ?>

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

'! ! 1c2 !'

ตัวอย่าง

คุณสามารถย้ายยัติภังค์ได้โดยไม่ต้อง escape มัน:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[az-]2#', '!', $str); ?>

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

'! ! 1c2 !'

ตัวอย่าง

ในตัวอย่างต่อไปนี้รูปแบบการค้นหาคือ: อักขระตัวแรก - คือตัวอักษรพิมพ์เล็กหรือ ยัติภังค์ '-' จากนั้นสองตัวอักษร 'x':

<?php $str = 'axx Axx -xx @xx'; $res = preg_replace('#[a-z-]xx#', '!', $str); ?>

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

'! Axx ! @xx'

ตัวอย่าง

ในตัวอย่างต่อไปนี้รูปแบบการค้นหาคือ: อักขระตัวแรก - คือตัวอักษรพิมพ์เล็ก พิมพ์ใหญ่ หรือยัติภังค์ '-' จากนั้นสองตัวอักษร 'x':

<?php $str = 'axx Axx -xx @xx'; $res = preg_replace('#[a-zA-Z-]xx#', '!', $str); ?>

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

'! ! ! @xx'

ตัวอย่าง

คุณสามารถวางยัติภังค์ระหว่างสองกลุ่ม - ที่นั่นมันจะไม่สร้างกลุ่มเพิ่มอย่างแน่นอน:

<?php $str = 'axx 9xx -xx @xx'; $res = preg_replace('#[a-z-0-9]xx#', '!', $str); ?>

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

'! ! ! @xx'

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

กำหนดสตริง:

<?php $str = 'xaz xBz xcz x-z x@z'; ?>

ค้นหาสตริงทั้งหมดตามรูปแบบต่อไปนี้: ตัวอักษร 'x' ตัวอักษรพิมพ์ใหญ่หรือพิมพ์เล็ก หรือยัติภังค์ ตัวอักษร 'z'

กำหนดสตริง:

<?php $str = 'xaz x$z x-z xcz x+z x%z x*z'; ?>

ค้นหาสตริงทั้งหมดตามรูปแบบต่อไปนี้: ตัวอักษร 'x' จากนั้นคือ dollar sign หรือ ยัติภังค์หรือ plus sign จากนั้นตัวอักษร 'z'

ไทย
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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ