⊗pyPmRESF 73 of 129 menu

Flaggor för reguljära uttryckssträngar i Python

För att ställa in flaggor som en av de valfria parametrarna för metoder som arbetar med reguljära uttryck, används följande syntax:

flags=re.flaggnamn

Huvudflaggor för att arbeta med reguljära uttryck

Flagg Syfte
re.IGNORECASE Ignorerar skiftläget för tecken.
re.DOTALL Punkten betecknar vilket tecken som helst, inklusive radbrytning.
re.I Gör sökningen skiftlägesokänslig.
re.L Söker ord enligt det aktuella språket. Denna tolkning påverkar den alfabetiska gruppen (\w och \W), samt beteendet för ordgräns (\b och \B).
re.M Tecknet $ utför sökning i slutet av vilken rad som helst i texten (inte bara textens slut) och tecknet ^ utför sökning i början av vilken rad som helst i texten (inte bara i textens början).
re.S Ändrar punktens (.) värde till matchning med vilket tecken som helst, inklusive ny rad.
re.U Tolkar bokstäver enligt Unicode-teckenuppsättningen. Denna flagga påverkar beteendet hos \w, \W, \b, \B. I Python 3+ är denna flagga inställd som standard.
re.X Tillåter flerradig syntax för reguljära uttryck. Den ignorerar mellanslag inuti mönstret (förutom mellanslag inuti uppsättningen [] eller vid escaping med omvänt snedstreck) och behandlar icke- escapade '#' som kommentarer.

Exempel

Med flaggan re.IGNORECASE kan man ignorera tecknens skiftläge. Låt oss se hur det görs. I detta exempel kommer det reguljära uttrycket att hitta bara små bokstäver:

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

Resultat av exekverad kod:

'! ! CCC DDD'

Exempel

Och nu lägger vi till i den fjärde parametern för metoden flaggan re.IGNORECASE och det reguljära uttrycket kommer att börja söka tecken i alla skiftlägen:

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

Resultat av exekverad kod:

'! ! ! !'

Exempel

Låt oss hitta alla radbrytningar med det reguljära uttrycket:

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

Resultat av exekverad kod:

'aaa!bbb'

Exempel

Men om man behöver ersätta alla tecken, så kommer, genom att sätta en punkt i det reguljära uttrycket, inte radbrytningar att fångas:

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

Resultat av exekverad kod:

'!!! !!!'

Exempel

För att rätta till detta fel bör flaggan re.DOTALL användas:

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

Resultat av exekverad kod:

'!!!!!!!'

Exempel

I parametern kan man också skicka flera flaggor, genom att sätta operatorn + mellan dem. Låt oss först ersätta bokstaven 'a' i slutet av raden:

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

Resultat av exekverad kod:

''' aaa AAA ! '''

Exempel

Nu sätter vi flaggan re.M:

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

Resultat av exekverad kod:

''' ! AAA ! '''

Exempel

Låt oss nu applicera även flaggan för att ignorera skiftläge:

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

Resultat av exekverad kod:

''' ! ! ! '''
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa