⊗pyPmRESF 73 of 129 menu

Flagg for strengregulære uttrykk i Python

For å sette flagg som en av de valgfrie parameterne for metoder som arbeider med regulære uttrykk, brukes følgende syntaks:

flags=re.flagnavn

Hovedflagg for arbeid med regulære uttrykk

Flagg Formål
re.IGNORECASE Ignorerer store og små bokstaver.
re.DOTALL Punktum betegner ethvert tegn, inkludert linjeskift.
re.I Gjør søket ufølsomt for store/små bokstaver.
re.L Søker etter ord i henhold til gjeldende språk. Denne tolkningen påvirker den alfabetiske gruppen (\w og \W), samt oppførselen til ordgrensen (\b og \B).
re.M Tegnet $ utfører søk på slutten av enhver linje med tekst (ikke bare slutten av teksten) og tegnet ^ utfører søk i begynnelsen av enhver linje med tekst (ikke bare i begynnelsen av teksten).
re.S Endrer betydningen av punktum (.) til samsvar med ethvert tegn, inkludert ny linje.
re.U Tolker bokstaver i henhold til Unicode-tegnsettet. Dette flagget påvirker oppførselen til \w, \W, \b, \B. I Python 3+ er dette flagget satt som standard.
re.X Tillater flerlinjet syntaks for regulært uttrykk. Den ignorerer mellomrom inni mønsteret (bortsett fra mellomrom inni settet [] eller når de escapes med omvendt skråstrek) og behandler ikke escapet '#' som en kommentar.

Eksempel

Med flagget re.IGNORECASE kan man ignorere store/små bokstaver. La oss se hvordan dette gjøres. I dette eksempelet vil det regulære uttrykket bare finne små bokstaver:

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

Resultatet av utført kode:

'! ! CCC DDD'

Eksempel

Og nå legger vi til i den fjerde parameteren til metoden flagget re.IGNORECASE, og det regulære uttrykket vil begynne å søke etter tegn i alle store/små bokstaver:

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

Resultatet av utført kode:

'! ! ! !'

Eksempel

La oss finne alle linjeskift med regulært uttrykk:

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

Resultatet av utført kode:

'aaa!bbb'

Eksempel

Men hvis man trenger å erstatte absolutt alle tegn, så vil ikke linjeskift fanges opp ved å sette et punktum i det regulære uttrykket:

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

Resultatet av utført kode:

'!!! !!!'

Eksempel

For å rette opp denne feilen, bør man bruke flagget re.DOTALL:

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

Resultatet av utført kode:

'!!!!!!!'

Eksempel

I parameteren kan man også sende flere flagg, ved å sette operatoren + mellom dem. La oss først erstatte bokstaven 'a' på slutten av linjen:

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

Resultatet av utført kode:

''' aaa AAA ! '''

Eksempel

Nå setter vi flagget re.M:

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

Resultatet av utført kode:

''' ! AAA ! '''

Eksempel

La oss nå bruke også flagget for å ignorere store/små bokstaver:

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

Resultatet av utført kode:

''' ! ! ! '''
Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis