⊗pyPmRESF 73 of 129 menu

Regulaaravaldiste lipud Pythonis

Flag'ide määramiseks ühe mittekohustusliku parameetrina meetoditele, mis töötavad regulaaravaldistega, kasutatakse järgmist süntaksit:

flags=re.lipu_nimi

Peamised lipud regulaaravaldistega töötamiseks

Lipp Eesmärk
re.IGNORECASE Tähemärkide kirjatüübi (suur- ja väiketähed) ignoreerimine.
re.DOTALL Punkt tähistab suvalist märki, kaasa arvatud reavahetusmärki.
re.I Teeb otsingu mitterahustuvaks kirjatüübile.
re.L Otsib sõnu vastavalt keelele. See tõlgendus mõjutab tähestikulist rühma (\w ja \W), samuti sõnapiiri käitumist (\b ja \B).
re.M Märk $ sooritab otsingu mis tahes rea lõpus (mitte ainult teksti lõpus) ja märk ^ sooritab otsingu mis tahes rea alguses (mitte ainult teksti alguses).
re.S Muudab punkti (.) väärtuse sobivaks mis tahes märgiga, kaasa arvatud uue rea märgiga.
re.U Tõlgendab tähti vastavalt Unicode'i märgistikule. See lipp mõjutab \w, \W, \b, \B käitumist. Pythonis 3+ on see lipp vaikimisi seatud.
re.X Võimaldab mitmerealist regulaaravaldise süntaksit. See ignoreerib tühikuid mustri sees (välja arvatud tühikud komplekti [] sees või kui need on kaitstud kurakaldkriipsuga) ja käsitleb kaitstemata '#' märki kommentaarina.

Näide

Lippu re.IGNORECASE saab kasutada tähemärkide kirjatüübi ignoreerimiseks. Vaatame, kuidas seda tehakse. Selles näites leiab regulaaravaldis ainult väiketähed:

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

Koodi täitmise tulemus:

'! ! CCC DDD'

Näide

Nüüd lisame meetodi neljandale parameetrile lipu re.IGNORECASE ja regulaaravaldis hakkab otsima märke kõikides kirjatüüpides:

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

Koodi täitmise tulemus:

'! ! ! !'

Näide

Leiame regulaaravaldisega kõik reavahetused:

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

Koodi täitmise tulemus:

'aaa!bbb'

Näide

Kuid kui on vaja asendada kõik märgid, siis pannes regulaaravaldises punkti, ei haara see reavahetusi:

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

Koodi täitmise tulemus:

'!!! !!!'

Näide

Vea parandamiseks tuleks rakendada lippu re.DOTALL:

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

Koodi täitmise tulemus:

'!!!!!!!'

Näide

Parameetrisse saab edastada ka mitu lippu, pannes nende vahele operaatori +. Kõigepealt asendame rea lõpus oleva tähe 'a':

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

Koodi täitmise tulemus:

''' aaa AAA ! '''

Näide

Nüüd paneme lipu re.M:

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

Koodi täitmise tulemus:

''' ! AAA ! '''

Näide

Rakendame nüüd ka kirjatüübi ignoreerimise lipu:

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

Koodi täitmise tulemus:

''' ! ! ! '''
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu