⊗pyPmRESF 73 of 129 menu

Steaguri pentru expresii regulate în Python

Pentru a seta steagurile ca unul dintre parametrii opționali pentru metodele care lucrează cu expresii regulate, se utilizează următoarea sintaxă:

flags=re.nume steag

Steaguri principale pentru lucrul cu expresii regulate

Steag Scop
re.IGNORECASE Ignoră majusculele și minusculele.
re.DOTALL Punctul reprezintă orice caracter, inclusiv saltul de linie.
re.I Face căutarea insensibilă la majuscule și minuscule.
re.L Caută cuvinte în conformitate cu limba curentă. Această interpretare afectează grupul alfabetic (\w și \W), precum și comportamentul limitei cuvântului (\b și \B).
re.M Caracterul $ efectuează căutarea la sfârșitul oricărei linii de text (nu doar la sfârșitul textului) și caracterul ^ efectuează căutarea la începutul oricărei linii de text (nu doar la începutul textului).
re.S Schimbă semnificația punctului (.) în potrivire cu orice caracter, inclusiv cu un nou salt de linie.
re.U Interpretează literele în conformitate cu setul de caractere Unicode. Acest steag afectează comportamentul \w, \W, \b, \B. În Python 3+ acest steag este setat implicit.
re.X Permite sintaxă multi-linie pentru expresia regulară. Ignoră spațiile din interiorul modelului (cu excepția spațiilor din interiorul setului [] sau atunci când sunt escape-uite cu backslash) și tratează ne-escape-uit '#' ca un comentariu.

Exemplu

Cu ajutorul steagului re.IGNORECASE se poate ignora majusculele și minusculele. Să vedem cum se face acest lucru. În acest exemplu expresia regulară va găsi doar literele mici:

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

Rezultatul executării codului:

'! ! CCC DDD'

Exemplu

Și acum să adăugăm în al patrulea parametru al metodei steagul re.IGNORECASE și expresia regulară va începe să caute caracterele în toate tiparele de majuscule și minuscule:

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

Rezultatul executării codului:

'! ! ! !'

Exemplu

Să găsim cu expresia regulară toate săriturile de linie:

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

Rezultatul codului executat:

'aaa!bbb'

Exemplu

Dar, dacă trebuie înlocuite toate caracterele, atunci punând în expresia regulară un punct, nu vor fi prinse săriturile de linie:

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

Rezultatul codului executat:

'!!! !!!'

Exemplu

Pentru a corecta această eroare, trebuie aplicat steagul re.DOTALL:

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

Rezultatul codului executat:

'!!!!!!!'

Exemplu

În parametru pot fi transmise și mai multe steaguri, punând între ele operatorul +. Să înlocuim mai întâi litera 'a' de la sfârșitul liniei:

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

Rezultatul codului executat:

''' aaa AAA ! '''

Exemplu

Acum să setăm steagul re.M:

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

Rezultatul codului executat:

''' ! AAA ! '''

Exemplu

Să aplicăm acum și steagul pentru ignorarea majusculelor și minusculelor:

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

Rezultatul codului executat:

''' ! ! ! '''
Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge