Zvláštnosti cyrilice v regulárních výrazech Pythonu

Velkou výhodou regulárních výrazů v Pythonu je, že cyrilické znaky patří do skupiny \w. Nahraďme všechny latinské a cyrilické znaky v následujícím řetězci:

pythontxt = 'x232x 456 xax xтекстx'
res = re.sub('x[\w]*x', '!', txt)

print(res)

Výsledek provedení kódu:

python'! 456 ! !'

Cyrilické písmena lze také hledat pomocí skupiny v hranatých závorkách: [а-я]. Ale s ní je problém - nezahrnuje písmeno 'ё'. Pro jeho zahrnutí je potřeba toto písmeno ke skupině doplnit:

pythonres = re.sub('x[а-яё]*x', '!', txt)
print(res)

Výsledek provedení kódu:

python'! 456 xax !'
Задание 1

Daný řetězec:

pythontxt = 'wйw wяw wёw wqw'

Napište regulární výraz, který najde řetězce podle vzoru: na okrajích jsou písmena 'w', a mezi nimi - cyrilické písmeno.

Задание 2

Daný řetězec:

pythontxt = 'ааа ббб ёёё ззз ййй ААА БББ ЁЁЁ ЗЗЗ ЙЙЙ'

Napište regulární výraz, který najde všechna slova podle vzoru: libovolné cyrilické písmeno libovolný počet opakování.