⊗ppPmRgNPB 252 of 447 menu

Nesaugančios skliaustelės PHP reguliariosiose išraiškose

Skliausteliuose () atliekamos dvi funkcijos - symbolių grupavimas ir kišenės funkcija. O ką daryti, jei mums reikia sugrupuoti, bet nedėti į kišenę? Norint išspręsti tokią problemą, buvo sugalvoti specialūs nesaugantys skliausteliai (?: ) - jie grupuoja, bet nededa į kišenę.

Pavyzdys

Šiame pavyzdyje pirmieji skliausteliai mums reikalingi grupavimui, o antrieji - kišenei. Tačiau ir tie, ir tie skliausteliai išsaugo duomenis į kišenę:

<?php $str = 'abab123'; $reg = '#(ab)+([1-9]+)#'; preg_match_all($reg, $str, $res); ?>

Dėl to mūsų kišenėse bus taip:

<?php var_dump($res[0]); // išves 'abab123' var_dump($res[1]); // išves 'ab' var_dump($res[2]); // išves '123' ?>

Pavyzdys

Padarykime taip, kad pirmoji skliaustelių pora tik grupuotų, bet nedėtų į kišenę:

<?php $str = 'abab123'; $reg = '#(?:ab)+([1-9]+)#'; preg_match_all($reg, $str, $res); ?>

Dėl to pirmoje kišenėje bus mūsų skaičius:

<?php var_dump($res[1]); // išves '123' ?>

Praktinės užduotys

Duoti poeiliai, suskirstyti į dvi dalis savavališku $@ porų skaičiumi:

<?php $str = 'aaa$@bbb aaa$@$@bbb aaa$@$@$@bbb'; ?>

Raskite kiekvieną iš tokių poeilių ir kiekvienam rastam poeliui į pirmąją kišenę įdėkite tai, kas yra prieš skirstytuvą, o į antrąją kišenę - tai, kas yra po skirstytuvo.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti