⊗jsSpRERO 97 of 294 menu

Operátory opakování znaků v regulárních výrazech

Existují situace, kdy chceme určit, že se znak opakuje daný počet krát. Pokud známe přesný počet opakování, můžeme jej jednoduše napsat několikrát - /aaaa/. Ale co dělat, když chceme říci toto: opakovat jednou nebo vícekrát?

K tomu existují operátory (kvantifikátory) opakování: plus + (jednou nebo vícekrát), hvězdička * (nula nebo vícekrát) a otazník ? (nula nebo jednou). Tyto operátory působí na znak, který je před nimi.

Podívejme se na práci těchto operátorů na příkladech.

Příklad

Najděme všechny podřetězce podle vzoru písmeno 'x', písmeno 'a' jednou nebo více krát, písmeno 'x':

let str = 'xx xax xaax xaaax xbx'; let res = str.replace(/xa+x/g, '!');

Výsledkem bude do proměnné zapsáno následující:

'xx ! ! ! xbx'

Příklad

Najděme všechny podřetězce podle vzoru písmeno 'x', písmeno 'a' nula nebo více krát, písmeno 'x':

let str = 'xx xax xaax xaaax xbx' let res = str.replace(/xa*x/g, '!');

Výsledkem bude do proměnné zapsáno následující:

'! ! ! ! xbx'

Příklad

Najděme všechny podřetězce podle vzoru písmeno 'x', písmeno 'a' nula nebo jednou, písmeno 'x':

let str = 'xx xax xaax xbx'; let res = str.replace(/xa?x/g, '!');

Výsledkem bude do proměnné zapsáno následující:

'! ! xaax xbx'

Praktické úlohy

Je dán řetězec:

let str = 'aa aba abba abbba abca abea';

Napište regulární výraz, který najde řetězce 'aba', 'abba', 'abbba' podle vzoru: písmeno 'a', písmeno 'b' libovolný počet krát, písmeno 'a'.

Je dán řetězec:

let str = 'aa aba abba abbba abca abea';

Napište regulární výraz, který najde řetězce 'aa', 'aba', 'abba', 'abbba' podle vzoru: písmeno 'a', písmeno 'b' libovolný počet krát (včetně nula krát), písmeno 'a'.

Je dán řetězec:

let str = 'aa aba abba abbba abca abea';

Napište regulární výraz, který najde řetězce 'aa', 'aba' podle vzoru: písmeno 'a', písmeno 'b' jednou nebo nikdy, písmeno 'a'.

Je dán řetězec:

let str = 'aa aba abba abbba abca abea';

Napište regulární výraz, který najde řetězce 'aa', 'aba', 'abba', 'abbba', bez zachycení 'abca' a 'abea'.

Č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