⊗ppPmRgCB 228 of 447 menu

Složené závorky v regulárních výrazech PHP

Operátory +, *, ? jsou dobré, ale nelze jimi určit konkrétní počet opakování. V tomto případě vám pomůže operátor {}.

Funguje následovně: {5} - pět opakování, {2,5} - opakuje se dvakrát až pětkrát (včetně), {2,} - opakuje se dvakrát a vícekrát.

Příklad

V tomto příkladu vypadá vyhledávací vzor takto: písmeno 'x', písmeno 'a' jednou nebo dvakrát, písmeno 'x':

<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{1,2}x#', '!', $str); ?>

Výsledkem bude, že se do proměnné zapíše následující:

'xx ! ! xaaax'

Příklad

V tomto příkladu vypadá vyhledávací vzor takto: písmeno 'x', písmeno 'a' dvakrát a vícekrát, písmeno 'x':

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

Výsledkem bude, že se do proměnné zapíše následující:

'xx xax ! !'

Příklad

V tomto příkladu vypadá vyhledávací vzor takto: písmeno 'x', písmeno 'a' třikrát, písmeno 'x':

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

Výsledkem bude, že se do proměnné zapíše následující:

'xx xax xaax !'

Příklad

V tomto příkladu vypadá vyhledávací vzor takto: písmeno 'a' desetkrát:

<?php $str = 'aaa aaaaaaaaaa aaa'; $res = preg_replace('#a{10}#', '!', $str); ?>

Výsledkem bude, že se do proměnné zapíše následující:

'aaa ! aaa'

Příklad

V tomto příkladu autor kodu chtěl takový vzor: písmeno 'x', písmeno 'a' třikrát a méně, písmeno 'x', ale bohužel toto - {,3} - nefunguje. Je třeba uvést explicitně:

<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{1,3}x#', '!', $str); ?>

Výsledkem bude, že se do proměnné zapíše následující:

'xx ! ! !'

Příklad

Nula je také povolena:

<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{0,3}x#', '!', $str); ?>

Výsledkem bude, že se do proměnné zapíše následující:

'! ! ! !'

Praktické úlohy

Je dán řetězec:

<?php $str = 'aa aba abba abbba abbbba abbbbba'; ?>

Napište regulární výraz, který najde řetězce 'abba', 'abbba', 'abbbba' a pouze je.

Je dán řetězec:

<?php $str = 'aa aba abba abbba abbbba abbbbba'; ?>

Napište regulární výraz, který najde řetězce tvaru 'aba', ve kterých se 'b' vyskytuje méně než třikrát (včetně).

Je dán řetězec:

<?php $str = 'aa aba abba abbba abbbba abbbbba'; ?>

Napište regulární výraz, který najde řetězce tvaru 'aba', ve kterých se 'b' vyskytuje více než čtyřikrát (včetně).

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout