⊗pyPmREHHy 47 of 129 menu

Цртица унутар скупа у регуларним изразима Пајтона

Цртица је такође специјални симбол унутар [ ] (али напољу - није). Ако вам је потребна сама цртица као симбол - ставите је тамо, где се неће схватити као раздвајач групе.

Зашто је ово важно: можете направити групу симбола, сами то не приметивши. На пример, овако - '[:-@]' - мислите да бирате двотачку, цртицу и мајмунчић, а у ствари добија се група симбола између : и @. У ову групу спадају следећи симболи: ? < = > :

Одакле они долазе? Из табеле ASCII - двотачка има мањи број, него мајмунчић - и добија се група. То јест све групе добијају се по ASCII табели (ако желите овим можете користити).

Како се борити са овим: ставите симбол цртице тамо, где сигурно неће бити схваћена као симбол групе, на пример, на почетку или на крају (то јест после [или пре ]).

Можете такође екранирати цртицу - тада ће означавати саму себе без обзира на позицију. На пример, уместо [:-@] написати [:\-@] - и групе више неће бити, а биће три симбола - двотачка, цртица и мајмунчић @.

Пример

У следећем примеру шаблон претраге је овакав: цифра 1, затим слово од 'a' до 'z', затим цифра 2:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a-z]2', '!', txt) print(res)

Резултат извршавања кода:

'! 1-2 ! !'

Пример

Хајде сада да екранирамо цртицу. У резултату шаблон претраге је овакав: цифра 1, затим слово 'a', или цртица, или слово 'z', затим цифра 2:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a\-z]2', '!', txt) print(res)

Резултат извршавања кода:

'! ! 1c2 !'

Пример

Може једноставно преместити цртицу, не екранирајући је:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[az-]2', '!', txt) print(res)

Резултат извршавања кода:

'! ! 1c2 !'

Пример

У следећем примеру шаблон претраге је овакав: први симбол - то су мала слова или цртица '-', затим два слова 'x':

txt = 'axx Axx -xx @xx' res = re.sub('[a-z-]xx', '!', txt) print(res)

Резултат извршавања кода:

'! Axx ! @xx'

Пример

У следећем примеру шаблон претраге је овакав: први симбол - то су мала, велика слова или цртица '-', затим два слова 'x':

txt = 'axx Axx -xx @xx' res = re.sub('[a-zA-Z-]xx', '!', txt) print(res)

Резултат извршавања кода:

'! ! ! @xx'

Пример

Може се поставити цртица између две групе - ту сигурно неће направити још једну групу:

txt = 'axx 9xx -xx @xx' res = re.sub('[a-z-0-9]xx', '!', txt) print(res)

Резултат извршавања кода:

'! ! ! @xx'

Практични задаци

Дат је стринг:

txt = 'xaz xBz xcz x-z x@z'

Пронађите све стрингове по следећем шаблону: слово 'x', велико или мало слово или цртица, слово 'z'.

Дат је стринг:

txt = 'xaz x$z x-z xcz x+z x%z x*z'

Пронађите све стрингове по следећем шаблону: слово 'x', затим или долар, или цртица или плус, затим слово 'z'.

Српски
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
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј