⊗ppPmRgEP 254 of 447 menu

Դիրքային պարամետրեր PHP-ի կանոնավոր արտահայտություններում

Դիրքային պարամետրերի պարունակությունը հասանելի է ոչ միայն փոխարինման տողում, այլև հենց կանոնավոր արտահայտության մեջ. մենք կարող ենք ինչ-որ բան դնել դիրքային պարամետրում, ապա հենց կանոնավոր արտահայտության մեջ ասել, որ այստեղ պետք է լինի այդ դիրքային պարամետրի պարունակությունը:

Դիրքային պարամետրերի պարունակությունը հասանելի է ըստ նրանց համարների, որոնցից առաջ դրվում է հակադարձ շեղ: Օրինակ, զրոյական դիրքային պարամետրը կլինի հասանելի այսպես. \0, առաջին դիրքային պարամետրը այսպես - \1, երկրորդը - \2 և այլն:

Համոզված եմ, որ վերևում գրվածը առայժմ շատ անհասկանալի է ձեզ համար: Սա զարմանալի չէ, քանի որ դիրքային պարամետրերը կանոնավոր արտահայտությունների ամենադժվար հասկանալու տեղն են: Եկեք օրինակներով հասկանանք:

Օրինակ

Ենթադրենք ունենք այսպիսի տող:

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

Եկեք գտնենք դրանում բոլոր այն տեղերը, որտեղ կան երկու նույնական տառներ հաջորդաբար: Խնդիրը լուծելու համար կփնտրենք ցանկացած տառ, կդնենք այն դիրքային պարամետրում, ապա կստուգենք, արդյոք հաջորդ նիշը այդ դիրքային պարամետրի պարունակությունն է:

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

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը:

'! ! cd ef'

Օրինակ

Ենթադրենք ունենք այսպիսի տող:

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

Եկեք գտնենք դրանում բոլոր այն բառերը, որոնցում նույնն են առաջին և վերջին տառերը: Խնդիրը լուծելու համար կգրենք հետևյալ կաղապարը. տառ, ապա ևս մեկ կամ ավելի տառ, ապա նույն տառը, ինչպես առաջինը:

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

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը:

'! ! csgd'

Օրինակ

\1-ի փոխարեն կարելի է գրել \g1:

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

Օրինակ

Կարելի է նաև գրել \g{1}:

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

Օրինակ

Ճաղավոր փակագծերում կարելի է նշել բացասական թվեր: Այս դեպքում դիրքային պարամետրերը կհաշվվեն վերջից:

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

Գործնական առաջադրանքներ

Տրված է տող.

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

Գտեք բոլոր այն ենթատողերը, որոնցում կան երեք նույնական տառներ հաջորդաբար:

Տրված է տող.

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

Գտեք բոլոր այն ենթատողերը, որոնցում կան երկու կամ ավելի նույնական տառներ հաջորդաբար:

Տրված է տող.

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

Գտեք բոլոր այն ենթատողերը, որոնցում կան երկու նույնական բառեր հաջորդաբար:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել