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' ҳарфи.