⊗ppPmRgChG 230 of 447 menu

Групы сімвалаў у рэгулярных выразах PHP

Існуюць спецыяльныя каманды, якія дазваляюць выбраць адразу цэлыя групы сімвалаў. Каманда \d азначае лічбу ад 0 да 9. Каманда \w абазначае лічбу, лацінскую літару ці знак падкрэслівання. Каманда \s абазначае прабел ці прабельны сімвал: прабел, перавод радка, табуляцыю. Можна інвертаваць значэнне каманды, напісаўшы вялікую літару: напрыклад, калі \d - лічба, то \D - не лічба.

Прыклад

Давайце знойдзем усе лічбы:

<?php $str = '1 12 123'; $res = preg_replace('#\d#', '!', $str); ?>

У выніку ў зменную запішацца наступнае:

'! !! !!!'

Прыклад

Аператары паўтарэння лічаць каманды-групы адным цэлым, гэта значыць групуруючыя дужкі не патрэбны. У наступным прыкладзе шаблон пошуку выглядае так: лічба ад 0 да 9 адзін ці больш разоў:

<?php $str = '1 12 123 abc @@@'; $res = preg_replace('#\d+#', '!', $str); ?>

У выніку ў зменную запішацца наступнае:

'! ! ! abc @@@'

Прыклад

У наступным прыкладзе шаблон пошуку выглядае так: усё што заўгодна адзін ці больш разоў, але не лічба ад 0 да 9:

<?php $str = '123abc3@@'; $res = preg_replace('#\D+#', '!', $str); ?>

У выніку ў зменную запішацца наступнае:

'123!3!'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: прабельны сімвал адзін раз:

<?php $str = '1 12 123 abc @@@'; $res = preg_replace('#\s#', '!', $str); ?>

У выніку ў зменную запішацца наступнае:

'1!12!123!abc!@@@'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: НЕ прабельны сімвал адзін ці больш разоў. Усе падрадкі, падзеленыя прабеламі, заменяцца на '!':

<?php $str = '1 12 123 abc @@@'; $res = preg_replace('#\S+#', '!', $str); ?>

У выніку ў зменную запішацца наступнае:

'! ! ! ! !'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: лічба ці літара адзін ці больш разоў. Усе падрадкі, якія складаюцца з лічбаў і літар, заменяцца на '!':

<?php $str = '1 12 123a Abc @@@'; $res = preg_replace('#\w+#', '!', $str); ?>

У выніку ў зменную запішацца наступнае:

'! ! ! ! @@@'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: НЕ лічба і НЕ літара адзін ці больш разоў. Па дадзенае вызначэнне ў нашым выпадку трапляе '@@@' і ўсе прабелы (яны ж таксама не лічбы і не літары). Звярніце ўвагу на тое, што ў канцы адзін '!' - у яго пераўтварыўся радок ' @@@' - з прабелам наперадзе:

$str = '1 12 123 Abc @@@'; $res = preg_replace('#\W+#', '!', $str);

У выніку ў зменную запішацца наступнае:

'1!12!123!Abc!'

Практычныя задачы

Дадзены радок:

<?php $str = 'a1a a2a a3a a4a a5a aba aca'; ?>

Напішыце рэгулярку, якая знойдзе радкі, у якіх па краях стаяць літары 'a', а паміж імі адна лічба.

Дадзены радок:

<?php $str = 'a1a a22a a333a a4444a a55555a aba aca'; ?>

Напішыце рэгулярку, якая знойдзе радкі, у якіх па краях стаяць літары 'a', а паміж імі любая колькасць лічбаў.

Дадзены радок:

<?php $str = 'aa a1a a22a a333a a4444a a55555a aba aca'; ?>

Напішыце рэгулярку, якая знойдзе радкі, у якіх па краях стаяць літары 'a', а паміж імі любая колькасць лічбаў (у тым ліку і нуль лічбаў, гэта значыць радок 'aa').

Дадзены радок:

<?php $str = 'avb a1b a2b a3b a4b a5b abb acb'; ?>

Напішыце рэгулярку, якая знойдзе радкі наступнага выгляду: па краях стаяць літары 'a' і 'b', а паміж імі - не лік.

Дадзены радок:

<?php $str = 'ave a#b a2b a$b a4b a5b a-b acb'; ?>

Напішыце рэгулярку, якая знойдзе радкі наступнага выгляду: па краях стаяць літары 'a' і 'b', а паміж імі - не літара і не лічба.

Дадзены радок:

<?php $str = 'ave a#a a2a a$a a4a a5a a-a aca'; ?>

Напішыце рэгулярку, якая замяніць усе прабелы на '!'.

Беларуская
AfrikaansAzərbaycanБългарскиবাংলাČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць