Муқаддима ба ифодаҳои мунтазам дар 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'.