Het caret-symbool binnen sets in Python regex
Zoals je weet, betekent de caret binnen [ ]
negatie wanneer deze aan het begin van de
haken staat. Dit betekent dat het een
speciaal symbool is binnen deze haken. Om
de caret als een symbool te krijgen, moet je
het of escapen, of niet op de eerste plaats
zetten.
Voorbeeld
In het volgende voorbeeld is het zoekpatroon als volgt:
het eerste teken is alles behalve 'd',
dan twee letters 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[^d]xx', '!', txt)
print(res)
Als resultaat wordt het volgende in de variabele geschreven:
'! ! ! dxx'
Voorbeeld
En nu is het zoekpatroon als volgt: het eerste
teken is 'd' of '^',
dan twee letters 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[d^]xx', '!', txt)
print(res)
Als resultaat wordt het volgende in de variabele geschreven:
'axx bxx ! !'
Voorbeeld
Je kunt de caret niet van de eerste plaats verwijderen, maar gewoon escapen met een backslash, en dan zal het zichzelf vertegenwoordigen:
txt = 'axx bxx ^xx dxx'
res = re.sub('[\^d]xx', '!', txt)
print(res)
Als resultaat wordt het volgende in de variabele geschreven:
'axx bxx ! !'
Praktische opdrachten
Gegeven een string:
txt = '^xx axx ^zz bkk @ss'
Schrijf een reguliere expressie die strings vindt volgens het patroon: caret of apenstaartje, gevolgd door twee Latijnse letters.
Gegeven een string:
txt = '^xx axx ^zz bkk @ss'
Schrijf een reguliere expressie die strings vindt volgens het patroon: GEEN caret en geen apenstaartje, maar gevolgd door twee Latijnse letters.
Gegeven een string:
txt = '^xx axx ^zz bkk'
Schrijf een reguliere expressie die strings vindt volgens het patroon: geen caret en geen spatie, maar gevolgd door twee Latijnse letters.