⊗ppPmRgRO 224 of 447 menu

Оператори за повторение на символи в регулярни изрази

Има ситуации, в които искаме да укажем, че символът се повтаря зададен брой пъти. Ако знаем точния брой повторения, можем просто да го напишем няколко пъти - #aaaa#. Но какво да правим, ако искаме да кажем нещо такова: повтори се един или повече пъти?

За това съществуват оператори (квантификатори) за повторение: плюс + (един или повече пъти), звездичка * (нула или повече пъти) и въпрос ? (нула или един път). Тези оператори действат върху символа, който стои пред тях.

Нека разгледаме работата на тези оператори с примери.

Пример

Да намерим всички поднизове по шаблон буква 'x', буква 'a' един или повече пъти, буква 'x':

<?php $str = 'xx xax xaax xaaax xbx'; $res = preg_replace('#xa+x#', '!', $str); ?>

В резултат във променливата ще бъде записано следното:

'xx ! ! ! xbx'

Пример

Да намерим всички поднизове по шаблон буква 'x', буква 'a' нула или повече пъти, буква 'x':

<?php $str = 'xx xax xaax xaaax xbx'; $res = preg_replace('#xa*x#', '!', $str); ?>

В резултат във променливата ще бъде записано следното:

'! ! ! ! xbx'

Пример

Да намерим всички поднизове по шаблон буква 'x', буква 'a' нула или един път, буква 'x':

<?php $str = 'xx xax xaax xbx'; $res = preg_replace('#xa?x#', '!', $str); ?>

В резултат във променливата ще бъде записано следното:

'! ! xaax xbx'

Практически задачи

Даден е низ:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Напишете регулярен израз, който ще намери низовете по шаблон: буква 'a', буква 'b' един или повече пъти, буква 'a'.

Даден е низ:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Напишете регулярен израз, който ще намери низовете по шаблон: буква 'a', буква 'b' нула или повече пъти, буква 'a'.

Даден е низ:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Напишете регулярен израз, който ще намери низовете по шаблон: буква 'a', буква 'b' един път или нито веднъж, буква 'a'.

Даден е низ:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Напишете регулярен израз, който ще намери низовете 'aa', 'aba', 'abba', 'abbba', без да улови 'abca' и 'abea'.

Български
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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне