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