⊗pyPmRESF 73 of 129 menu

Zastavice za stringove regularnih izraza u Pythonu

Da biste postavili zastavice kao jedan od opcionih parametara za metode koje rade sa regularnim izrazima, koristi se sledeća sintaksa:

flags=re.ime zastavice

Glavne zastavice za rad sa regularnim izrazima

Zastavica Namena
re.IGNORECASE Zanemarivanje veličine slova pri pisanju simbola.
re.DOTALL Tačka označava bilo koji simbol, uključujući i prelazak u novi red.
re.I Čini pretragu neosetljivom na veličinu slova.
re.L Traži reči u skladu sa trenutnim jezikom. Ovo tumačenje utiče na alfabetsku grupu (\w i \W), kao i na ponašanje granice reči (\b i \B).
re.M Simbol $ vrši pretragu na kraju bilo koje linije teksta (ne samo kraja teksta) i simbol ^ vrši pretragu na početku bilo koje linije teksta (ne samo na početku teksta).
re.S Menja značenje tačke (.) na podudaranje sa bilo kojim simbolom, uključujući novi red.
re.U Tumači slova u skladu sa setom simbola Unicode. Ova zastavica utiče na ponašanje \w, \W, \b, \B. U Python-u 3+ ova zastavica je podešena po podrazumevanim vrednostima.
re.X Dozvoljava višelinijsku sintaksu regularnog izraza. Zanemaruje razmake unutar šablona (izuzev razmaka unutar seta [] ili pri ekranizaciji obrnutom kosom crtom) i tretira neekranizirani '#' kao komentar.

Primer

Pomoću zastavice re.IGNORECASE možemo zanemariti veličinu slova. Hajde da pogledamo kako se to radi. U ovom primeru regularni izraz će naći samo mala slova:

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

Rezultat izvršavanja koda:

'! ! CCC DDD'

Primer

A sada da dodamo u četvrti parametar metoda zastavicu re.IGNORECASE i regularni izraz će početi da traži simbole u svim veličinama slova:

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

Rezultat izvršavanja koda:

'! ! ! !'

Primer

Hajde da pronađemo regularnim izrazom sve prelaze u novi red:

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

Rezultat izvršenog koda:

'aaa!bbb'

Primer

Ali, ako treba zameniti uopšte sve simbole, onda stavljajući u regularnom izrazu tačku, neće se uhvatiti prelasci u novi red:

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

Rezultat izvršenog koda:

'!!! !!!'

Primer

Da bismo ispravili ovu grešku, treba primeniti zastavicu re.DOTALL:

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

Rezultat izvršenog koda:

'!!!!!!!'

Primer

U parametru se može proslediti i nekoliko zastavica, stavivši između njih operator +. Hajde prvo da zamenimo slovo 'a' na kraju linije:

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

Rezultat izvršenog koda:

''' aaa AAA ! '''

Primer

Sada da postavimo zastavicu re.M:

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

Rezultat izvršenog koda:

''' ! AAA ! '''

Primer

Hajde sada da primenimo i zastavicu za zanemarivanje veličine slova:

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

Rezultat izvršenog koda:

''' ! ! ! '''
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij