Ծանոթություն PHP-ում կանոնավոր արտահայտություններին
Կանոնավոր արտահայտությունները հրամաններ են բարդ որոնման և փոխարինման համար: Դրանք թույլ են տալիս անել շատ հետաքրքիր բաներ, բայց, դժբախտաբար, բավականին դժվար են յուրացման համար:
Կան PHP-ի մի քանի ֆունկցիաներ կանոնավոր արտահայտությունների հետ
աշխատելու համար: Մենք կսկսենք ծանոթանալ
դրանց հետ preg_replace ֆունկցիայի
օրինակով: Այս
ֆունկցիան առաջին պարամետրով ընդունում է՝ ինչ փոխել,
իսկ երկրորդով՝ ինչով փոխել, իսկ երրորդ պարամետրով
- տողը, որում անհրաժեշտ է փոխարինել.
<?php
preg_replace(ինչ փոխել, ինչով, տող);
?>
Այս դեպքում առաջին պարամետրով մեր ֆունկցիան ընդունում է
ոչ միայն պարզ տող, այլ կանոնավոր արտահայտություն,
որը ներկայացնում է հրամանների հավաքածուով տող,
տեղակայված ցանցային # նիշերի ներսում:
Այս ցանցերը կոչվում են սահմանազատիչներ
կանոնավոր արտահայտությունների:
Սահմանազատիչներից հետո կարելի է գրել մոդիֆիկատորներ - հրամաններ, որոնք փոխում են կանոնավոր արտահայտության ընդհանուր հատկությունները:
Իրենք կանոնավոր արտահայտությունները բաղկացած են երկու տիպի նիշերից. նրանցից, որոնք նշանակում են ինքն իրենց և նիշեր-հրամաններից, որոնք կոչվում են հատուկ նիշեր:
Տառերն ու թվերը նշանակում են ինքն իրենց: Հաջորդ
օրինակում մենք կանոնավոր արտահայտության միջոցով
կփոխարինենք 'a' տառը '!'-ով.
<?php
preg_replace('#a#', '!', 'bab'); // կվերադարձնի 'b!b'
?>
Սակայն կետը հատուկ նիշ է
և նշանակում է ցանկացած նիշ: Հաջորդ
օրինակում մենք կգտնենք տող ըստ այսպիսի հատկանիշի.
'x' տառը, ապա ցանկացած նիշ, ապա
կրկին 'x' տառը.
<?php
preg_replace('#x.x#', '!', 'xax eee'); // կվերադարձնի '! eee'
?>
Տրված է տող.
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Գրեք կանոնավոր արտահայտություն, որը կգտնի
'ahb', 'acb', 'aeb'
տողերը ըստ հատկանիշի. 'a' տառը, ցանկացած նիշ,
'b' տառը.
Տրված է տող.
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Գրեք կանոնավոր արտահայտություն, որը կգտնի
'aeeb', 'adcb', 'axeb'
տողերը ըստ հատկանիշի. 'a' տառը, երկու ցանկացած
նիշ, 'b' տառը.