⊗pyPmRESF 73 of 129 menu

A reguláris kifejezések flag-jei Pythonban

A flag-ek egyik opcionális paraméterként való megadásához a reguláris kifejezésekkel működő metódusoknál a következő szintaxist használjuk:

flags=re.flag neve

Alapvető flag-ek a reguláris kifejezésekhez

Flag Feladat
re.IGNORECASE A karakterek nagybetű/kisbetű érzékenységének figyelmen kívül hagyása.
re.DOTALL A pont bármely karaktert jelöl, beleértve a soremelést is.
re.I Kis- és nagybetűket nem megkülönböztető keresést végez.
re.L A szavakat az aktuális nyelvnek megfelelően keresi. Ez az értelmezés az ábécé csoportot érinti (\w és \W), valamint a szóhatár viselkedését (\b és \B).
re.M A $ karakter a szöveg bármely sorának végén keres (nem csak a szöveg végén), és a ^ karakter a szöveg bármely sorának elején keres (nem csak a szöveg elején).
re.S Megváltoztatja a pont (.) jelentését úgy, hogy az bármely karakterre illeszkedik, beleértve az újsor karaktert is.
re.U A betűket a Unicode karakterkészlet szerint értelmezi. Ez a flag befolyásolja a \w, \W, \b, \B viselkedését. A Python 3+ verzióiban ez a flag alapértelmezetten be van állítva.
re.X Lehetővé teszi a reguláris kifejezés többsoros szintaxisát. Figyelmen kívül hagyja a szóközöket a mintán belül (kivéve a [] halmazon belüli szóközöket vagy a visszaperjellel escape-elt szóközöket), és a nem escape-elt '#' karaktert megjegyzésként kezeli.

Példa

A re.IGNORECASE flag segítségével figyelmen kívül hagyhatjuk a karakterek nagybetű/kisbetű érzékenységét. Nézzük meg, hogyan is történik ez. Ebben a példában a reguláris kifejezés csak a kisbetűket találja meg:

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

A kód végrehajtásának eredménye:

'! ! CCC DDD'

Példa

Most adjuk hozzá a metódus negyedik paraméteréhez a re.IGNORECASE flag-et, és a reguláris kifejezés minden kis- és nagybetűben megkeresi a karaktereket:

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

A kód végrehajtásának eredménye:

'! ! ! !'

Példa

Keressük meg a reguláris kifejezéssel az összes soremelést:

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

A kód végrehajtásának eredménye:

'aaa!bbb'

Példa

De ha az összes karaktert le szeretnénk cserélni, akkor a reguláris kifejezésben pontot használva a soremelések nem kerülnek bele:

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

A kód végrehajtásának eredménye:

'!!! !!!'

Példa

A hiba javításához használjuk a re.DOTALL flag-et:

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

A kód végrehajtásának eredménye:

'!!!!!!!'

Példa

A paraméterben több flag-et is átadhatunk, közéjük egy + operátort téve. Először cseréljük le az 'a' betűt a sor végén:

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

A kód végrehajtásának eredménye:

''' aaa AAA ! '''

Példa

Most állítsuk be a re.M flag-et:

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

A kód végrehajtásának eredménye:

''' ! AAA ! '''

Példa

Most alkalmazzuk a kis- és nagybetűk figyelmen kívül hagyására szolgáló flag-et is:

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

A kód végrehajtásának eredménye:

''' ! ! ! '''
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás