⊗ppPmRgEP 254 of 447 menu

Zárójelek a reguláris kifejezésekben PHP-ben

A zárójelek tartalma nem csak a csere sztringben érhető el, hanem magában a reguláris kifejezésben is: tehetünk valamit egy zárójelbe, majd magában a reguláris kifejezésben megadhatjuk, hogy annak a zárójelnek a tartalmának kell itt állnia.

A zárójelek tartalma a sorszámukon keresztül érhető el, amelyek elé fordított perjel kerül. Például, a nulladik zárójel így érhető el: \0, az első zárójel így - \1, a második - \2 és így tovább.

Biztos vagyok benne, hogy a fent írtak eddig nagyon homályosak az Ön számára. Ez nem meglepő, hiszen a zárójelek a reguláris kifejezések legkevésbé érthető részei. Nézzünk példákat.

Példa

Tegyük fel, hogy van egy ilyen sztringünk:

<?php $str = 'aa bb cd ef'; ?>

Keressük meg benne mindazokat a helyeket, ahol bármelyik két azonos betű áll egymás után. A feladat megoldásához keressünk bármelyik betűt, tegyük egy zárójelbe, majd ellenőrizzük, hogy a következő karakter megegyezik-e a zárójel tartalmával:

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

Ennek eredményeként a változóba a következő íródik:

'! ! cd ef'

Példa

Tegyük fel, hogy van egy ilyen sztringünk:

<?php $str = 'asxca buzxb csgd'; ?>

Keressük meg benne mindazokat a szavakat, amelyekben az első és az utolsó betű megegyezik. A feladat megoldásához írjuk a következő mintát: betű, majd egy vagy több további betű, majd ugyanaz a betű, mint az első:

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

Ennek eredményeként a változóba a következő íródik:

'! ! csgd'

Példa

A \1 helyett írhatunk \g1-et is:

<?php $res = preg_replace('#([a-z])[a-z]+\g1#', '!', $str); ?>

Példa

Írhatunk \g{1}-et is:

<?php $res = preg_replace('#([a-z])[a-z]+\g{1}#', '!', $str); ?>

Példa

A kapcsos zárójelekben negatív számokat is megadhatunk. Ebben az esetben a zárójelek végtől számolva lesznek meghatározva:

<?php $res = preg_replace('#([a-z])([a-z])\g{-2}#', '!', $str); ?>

Gyakorlati feladatok

Adott egy sztring:

<?php $str = 'aaa bbb ccc xyz'; ?>

Keresse meg az összes olyan részsztringet, ahol három ugyanolyan betű áll egymás után.

Adott egy sztring:

<?php $str = 'a aa aaa abab bbbb'; ?>

Keresse meg az összes olyan részsztringet, ahol két vagy több ugyanolyan betű áll egymás után.

Adott egy sztring:

<?php $str = 'aaa aaa bbb bbb ccc ddd'; ?>

Keresse meg az összes olyan részsztringet, ahol két ugyanolyan szó áll egymás után.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás