⊗pyPmREChS 40 of 129 menu

Скупови знакова у регуларним изразима Пајтона

Групе знакова \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ščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј