⊗pyPmREChS 40 of 129 menu

Наборы сімвалаў у рэгулярных выразах Python

Групы сімвалаў \d і \w не вельмі гнуткія. Нават такая простая задача, як знайсці ўсе літары, але не лічбы - не можа быць вырашана імі. Для такіх задач след выкарыстоўваць квадратныя дужкі, якія ўяўляюць сабой аперацыю 'ці'.

Квадратныя дужкі замяняюць сабой адзін сімвал, любы з пералічаных усярэдзіне. Да прыкладу, вось так: x[abc]x - мы гаворым, што па краях павінны стаяць літары ікс, а ўсярэдзіне - адзін сімвал: ці 'a', ці 'b', ці 'c'.

Пасля квадратных дужак можна пісаць аператары паўтарэння. Да прыкладу, вось так: x[abc]+x - мы гаворым, што ўсярэдзіне іксаў можа быць любая колькасць сімвалаў 'a', 'b' і 'c' - у любых камбінацыях.

Можна не толькі пералічваць сімвалы, але ствараць групы сімвалаў, запісваючы паміж двума сімваламі злучок. Да прыкладу, вось так: [a-d] - мы атрымліваем усе сімвалы ад 'a' да 'd'.

Давайце паглядзім на прыкладах.

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: паміж іксаў любая літара ад 'a' да 'z':

<+Python+> txt = 'xax xbx xcx x@x' res = re.sub('x[a-z]x', '!', txt) print(res) <-python->

Вынік выканання кода:

'! ! ! x@x'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: паміж іксаў любая літара ад 'a' да 'k':

txt = 'xax xbx xmx x@x' res = re.sub('x[a-k]x', '!', txt) print(res)

Вынік выканання кода:

'! ! xmx x@x'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: паміж іксаў любая літара ад 'A' да 'Z':

txt = 'xax xBx xcx x@x' res = re.sub('x[A-Z]x', '!', txt) print(res)

Вынік выканання кода:

'xax ! xcx x@x'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: паміж іксаў любая лічба ад 0 да 9:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[0-9]x', '!', txt) print(res)

Вынік выканання кода:

'xax ! ! ! x@x'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: паміж іксаў любая лічба ад 3 да 7:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[3-7]x', '!', txt) print(res)

Вынік выканання кода:

'xax x1x ! ! x@x'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: паміж іксаў любая літара ад 'a' да 'z' ці лічба ад 1 да 9:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[a-z1-9]x', '!', txt) print(res)

Вынік выканання кода:

'! ! ! ! x@x'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: паміж іксаў любая літара ад 'a' да 'z' ці літара ад 'A' да 'Z':

txt = 'xax xBx xcx x5x x@x' res = re.sub('x[a-zA-Z]x', '!', txt) print(res)

Вынік выканання кода:

'! ! ! x5x x@x'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: паміж іксаў любая літара ад 'a' да 'z' ці лічбы 1, 2:

txt = 'xax xbx x1x x2x x3x' res = re.sub('x[a-z12]x', '!', txt) print(res)

Вынік выканання кода:

'! ! ! ! x3x'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: паміж іксаў літары ад 'a' да 'z' у колькасці ад 1 і больш:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]+x', '!', txt) print(res)

Вынік выканання кода:

'xx ! ! ! x123x xa3x'

Прыклад

Зробім так, каб колькасць літар магло быць і нуль:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]*x', '!', txt) print(res)

У выніку мы атрымаем:

'! ! ! ! x123x xa3x'

Прыклад

Усярэдзіне квадратных дужак таксама можна паказваць экранаваныя сімвалы. Давайце знойдзем паслядоўнасць літар і лічбаў, якая паўтараецца нуль ці больш разоў:

txt = 'xx x@x xadx xas12x xa3x' res = re.sub('x[a-z\d]*x', '!', txt) print(res)

Вынік выканання кода:

'! x@x ! ! !'

Прыклад

Калі ж нам трэба паказаць яшчэ адны квадратныя дужкі, то мы іх таксама абавязкова экрануем:

txt = 'xx xrx xas[]x x3x' res = re.sub('x[a-z\[\]]*x', '!', txt) print(res)

Вынік выканання кода:

'! ! ! x3x'

Практычныя задачы

Дадзены радок:

txt = 'aba aea aca aza axa'

Напішыце рэгулярку, якая знойдзе па наступным шаблоне: па краях стаяць літары 'a', а паміж імі - літара 'b', 'e' ці 'x'.

Дадзены радок:

txt = 'a1a a3a a7a a9a aba'

Напішыце рэгулярку, якая знойдзе па наступным шаблоне: па краях стаяць літары 'a', а паміж імі - лічба ад 3 да 6.

Дадзены радок:

txt = 'aba aea afa aha aga'

Напішыце рэгулярку, якая знойдзе па наступным шаблоне: па краях стаяць літары 'a', а паміж імі - літара ад 'a' да 'g'.

Дадзены радок:

txt = 'aba aea afa aha aga'

Напішыце рэгулярку, якая знойдзе па наступным шаблоне: па краях стаяць літары 'a', а паміж імі - літара ад 'a' да 'f' і ад 'j' да 'z'.

Дадзены радок:

txt = 'aAa aea aEa aJa a3a'

Напішыце рэгулярку, якая знойдзе па наступным шаблоне: па краях стаяць літары 'a', а паміж імі - літара ад 'a' да 'f' і ад 'A' да 'D'.

Дадзены радок:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Напішыце рэгулярку, якая знойдзе па наступным шаблоне: па краях стаяць літары 'a', а паміж імі - маленькія лацінскія літары, не зачапіўшы астатніх.

Дадзены радок:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Напішыце рэгулярку, якая знойдзе па наступным шаблоне: па краях стаяць літары 'a', а паміж імі - маленькія і вялікія лацінскія літары, не зачапіўшы астатніх.

Дадзены радок:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Напішыце рэгулярку, якая знойдзе па наступным шаблоне: па краях стаяць літары 'a', а паміж імі - маленькія лацінскія літары і лічбы, не зачапіўшы астатніх.

Беларуская
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
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць