Vlae vir string regulêre uitdrukkings in Python
Om vlae as een van die opsionele parameters vir metodes wat met regex werk, te stel, gebruik jy die volgende sintaksis:
flags=re.vlaagnaam
Hoof vlae vir werk met regulêre uitdrukkings
| Vlag | Doel |
|---|---|
re.IGNORECASE |
Ignoreer hoof- en kleinletters. |
re.DOTALL |
Die punt stel voor enige karakter, insluitend 'n reëlingbreuk. |
re.I |
Maak die soektog kas-onafsensitief. |
re.L |
Soek woorde volgens die huidige taal.
Hierdie interpretasie raak die alfabetiese
groep (\w en \W), sowel as
die gedrag van woordgrens (\b en
\B).
|
re.M |
Karakter $ soek aan die einde van
enige reël teks (nie net die einde van teks nie)
en karakter ^ soek aan die begin van
enige reël teks (nie net aan die begin van
teks nie).
|
re.S |
Verander die betekenis van die punt (.) na
ooreenstemming met enige karakter, insluitend 'n nuwe
reël.
|
re.U |
Interpreteer letters volgens die
Unicode karakterstel. Hierdie vlag beïnvloed
die gedrag van \w, \W, \b,
\B. In Python 3+ is hierdie vlag
by verstek gestel.
|
re.X |
Stel multi-reël sintaksis van regulêre
uitdrukking toe. Dit ignoreer spasies binne
die patroon (behalwe spasies binne
'n stel [] of wanneer dit
met 'n agteroorskuisstreep ontsnap is) en hanteer nie-
ontsnapte '#' as 'n kommentaar.
|
Voorbeeld
Met die vlag re.IGNORECASE kan jy
hoof- en kleinletters ignoreer. Kom ons
kyk hoe dit gedoen word. In hierdie voorbeeld
sal die regex slegs klein letters vind:
txt = 'aaa bbb CCC DDD'
res = re.sub('[a-z]+', '!', txt)
print(res)
Die resultaat van die uitgevoerde kode:
'! ! CCC DDD'
Voorbeeld
En nou voeg ons die vlag re.IGNORECASE by in die vierde parameter
van die metode en die regex
sal karakters in alle gevalle begin soek:
txt = 'aaa AAA bbb BBB'
res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE)
print(res)
Die resultaat van die uitgevoerde kode:
'! ! ! !'
Voorbeeld
Kom ons vind alle reëlingebreuke met regex:
txt = '''aaa
bbb'''
res = re.sub('\n', '!', txt)
print(res)
Die resultaat van die uitgevoerde kode:
'aaa!bbb'
Voorbeeld
Maar as jy alle karakters wil vervang, dan sal, deur 'n punt in die regex te plaas, die reëlingebreuke nie gevang word nie:
txt = '''aaa
bbb'''
res = re.sub('.', '!', txt)
print(res)
Die resultaat van die uitgevoerde kode:
'!!!
!!!'
Voorbeeld
Om hierdie fout reg te stel, moet jy
die vlag re.DOTALL toepas:
res = re.sub('.', '!', txt, flags=re.DOTALL)
print(res)
Die resultaat van die uitgevoerde kode:
'!!!!!!!'
Voorbeeld
Jy kan ook verskeie vlae in die
parameter deurgee, deur die operator + tussen hulle te plaas.
Kom ons vervang eers die letter 'a'
aan die einde van die reël:
txt = '''
aaa
AAA
aaa'''
res = re.sub('aaa
, '!', txt)
print(res)
Die resultaat van die uitgevoerde kode:
'''
aaa
AAA
!
'''
Voorbeeld
Nou stel ons die vlag re.M:
res = re.sub('aaa
, '!', txt, flags=re.M)
print(res)
Die resultaat van die uitgevoerde kode:
'''
!
AAA
!
'''
Voorbeeld
Kom ons pas nou ook die vlag vir die ignoreering van hoof- en kleinletters toe:
res = re.sub('aaa
, '!', txt, flags=re.M+re.IGNORECASE)
print(res)
Die resultaat van die uitgevoerde kode:
'''
!
!
!
'''