⊗pyPmRESF 73 of 129 menu

Знамиња за низи на регуларни изрази во Python

За да се зададат знамињата како еден од опционалните параметри за методите кои работат со регуларни изрази, се користи следниот синтаксис:

flags=re.име на знаме

Основни знамиња за работа со регуларни изрази

Знаме Намена
re.IGNORECASE Игнорирање на регистарот на пишување симболи.
re.DOTALL Точката означува кој било симбол, вклучувајќи го и преводот на редот.
re.I Го прави пребарувањето неосетливо на регистарот.
re.L Бара зборови во согласност со тековниот јазик. Ова толкување влијае на азбучната група (\w и \W), како и на однесувањето на границата на зборот (\b и \B).
re.M Симболот $ извршува пребарување на крајот на која било линија текст (не само крајот на текстот) и симболот ^ извршува пребарување на почетокот на која било линија текст (не само на почетокот на текстот).
re.S Ја менува вредноста на точката (.) на совпаѓање со кој било симбол, вклучувајќи ја новата линија.
re.U Ги толкува буквите во согласност со множеството знаци Unicode. Ова знаме влијае на однесувањето на \w, \W, \b, \B. Во Python 3+ ова знаме е поставено по стандард.
re.X Овозможува синтакса за регуларен израз на повеќе линии. Ги игнорира празните места внатре во шаблонот (освен празните места внатре во множеството [] или при екранирање со обратна коса црта) и ги третира неекранираните '#' како коментар.

Пример

Со помош на знамето re.IGNORECASE може да се игнорира регистарот на симболите. Ајде да погледнеме како се прави ова. Во овој пример регуларниот израз ќе ги најде само малите букви:

txt = 'aaa bbb CCC DDD' res = re.sub('[a-z]+', '!', txt) print(res)

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

'! ! CCC DDD'

Пример

А сега да го додадеме во четвртиот параметар на методот знамето re.IGNORECASE и регуларниот израз ќе почне да бара симболи во сите регистри:

txt = 'aaa AAA bbb BBB' res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE) print(res)

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

'! ! ! !'

Пример

Ајде да ги најдеме со регуларен израз сите преводи на ред:

txt = '''aaa bbb''' res = re.sub('\n', '!', txt) print(res)

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

'aaa!bbb'

Пример

Но, ако треба да се заменат сите симболи, тогаш со ставање точка во регуларниот израз, нема да се земат преводите на редовите:

txt = '''aaa bbb''' res = re.sub('.', '!', txt) print(res)

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

'!!! !!!'

Пример

За да се исправи оваа грешка, треба да се примени знамето re.DOTALL:

res = re.sub('.', '!', txt, flags=re.DOTALL) print(res)

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

'!!!!!!!'

Пример

Во параметарот може да се пренесат и неколку знамиња, со ставање на операторот + помеѓу нив. Ајде прво да ја замениме буквата 'a' на крајот од линијата:

txt = ''' aaa AAA aaa''' res = re.sub('aaa ', '!', txt) print(res)

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

''' aaa AAA ! '''

Пример

Сега да го поставиме знамето re.M:

res = re.sub('aaa ', '!', txt, flags=re.M) print(res)

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

''' ! AAA ! '''

Пример

Ајде сега да примениме и знаме за игнорирање на регистарот:

res = re.sub('aaa ', '!', txt, flags=re.M+re.IGNORECASE) print(res)

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

''' ! ! ! '''
Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј