Увод у рэгулярныя выразы ў 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'.