⊗pyPmRESF 73 of 129 menu

Regulāro izteiksmju karodziņi Python

Lai iestatītu karodziņus kā vienu no neobligātajiem parametriem metodēm, kas strādā ar regulārām izteiksmēm, izmanto šādu sintaksi:

flags=re.karoga_nosaukums

Galvenie karodziņi darbam ar regulārām izteiksmēm

Karodziņš Mērķis
re.IGNORECASE Ignorē rakstzīmju rakstības reģistru.
re.DOTALL Punkts apzīmē jebkuru rakstzīmi, ieskaitot rindas pārnesti.
re.I Padara meklēšanu nejutīgu pret reģistru.
re.L Meklē vārdus atbilstoši pašreizējai valodai. Šī interpretācija skar alfabētisko grupumu (\w un \W), kā arī vārda robežas uzvedību (\b un \B).
re.M Simbols $ veic meklēšanu jebkuras teksta rindas beigās (ne tikai teksta beigās) un simbols ^ veic meklēšanu jebkuras teksta rindas sākumā (ne tikai teksta sākumā).
re.S Maina punkta (.) nozīmi uz atbilstību jebkuram simbolam, ieskaitot jaunu rindu.
re.U Interpretē burtus atbilstoši Unicode rakstzīmju kopai. Šis karodziņš ietekmē \w, \W, \b, \B uzvedību. Python 3+ šis karodziņš ir iestatīts pēc noklusējuma.
re.X Atļauj daudzrindu regulārās izteiksmes sintaksi. Tas ignorē atstarpes raksta iekšienē (izņemot atstarpes kopas iekšienē [] vai ar apgriezto slīpsvītru ekrēnojot) un apstrādā neekrēnotu '#' kā komentāru.

Piemērs

Izmantojot karodziņu re.IGNORECASE, var ignorēt rakstzīmju reģistru. Apskatīsim, kā tas tiek darīts. Šajā piemērā regulārā izteiksme atradīs tikai mazos burtus:

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

Koda izpildes rezultāts:

'! ! CCC DDD'

Piemērs

Un tagad pievienosim ceturtajā parametrā metoda karodziņu re.IGNORECASE, un regulārā izteiksme sāks meklēt rakstzīmes visos reģistros:

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

Koda izpildes rezultāts:

'! ! ! !'

Piemērs

Atrast ar regulāro izteiksmi visus rindu pārnešus:

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

Izpildītā koda rezultāts:

'aaa!bbb'

Piemērs

Bet, ja nepieciešams aizstāt visus simbolus, tad ievietojot regulārajā izteiksmē punktu, netiks noķerti rindu pārnešumi:

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

Izpildītā koda rezultāts:

'!!! !!!'

Piemērs

Lai izlabotu šo kļūdu, vajadzētu piemērot karodziņu re.DOTALL:

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

Izpildītā koda rezultāts:

'!!!!!!!'

Piemērs

Parametrā var padot arī vairākus karodziņus, ievietojot starp tiem operatoru +. Vispirms aizstāsim burtu 'a' rindas beigās:

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

Izpildītā koda rezultāts:

''' aaa AAA ! '''

Piemērs

Tagad iestatīsim karodziņu re.M:

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

Izpildītā koda rezultāts:

''' ! AAA ! '''

Piemērs

Tagad pielietosim vēl karodziņu reģistra ignorēšanai:

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

Izpildītā koda rezultāts:

''' ! ! ! '''
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt