⊗pyPmRERO 34 of 129 menu

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

Existují situace, kdy je třeba určit, že se znak opakuje daný počet opakování. Pokud přesný počet opakování není znám, lze jej prostě napsat několikrát - 'aaaa'. Ale co dělat, když je potřeba říci toto: opakovat jednou nebo vícekrát?

K tomu slouží 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ý stojí před nimi.

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

Příklad

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

txt = 'xx xax xaax xaaax xbx' res = re.sub('xa+x', '!', txt) print(res)

Výsledek provedení kódu:

'xx ! ! ! xbx'

Příklad

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

txt = 'xx xax xaax xaaax xbx' res = re.sub('xa*x', '!', txt) print(res)

Výsledek provedení kódu:

'! ! ! ! xbx'

Příklad

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

txt = 'xx xax xaax xbx' res = re.sub('xa?x', '!', txt) print(res)

Výsledek provedení kódu:

'! ! xaax xbx'

Praktické úlohy

Je dán řetězec:

txt = '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 opakování, písmeno 'a'.

Je dán řetězec:

txt = '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 opakování (včetně nulového počtu), písmeno 'a'.

Je dán řetězec:

txt = '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 žádnou, písmeno 'a'.

Je dán řetězec:

txt = '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