Znak stříšky uvnitř množin v regulárních výrazech Python
Jak víte, stříška uvnitř [ ]
znamená negaci, když je napsána na
začátku závorek. To znamená, že je
speciálním znakem uvnitř těchto závorek. Abyste
dostali stříšku jako symbol, musíte ji buď
escapovat, nebo odstranit z první
pozice.
Příklad
V následujícím příkladu je vzor hledání tento:
první znak je vše kromě 'd',
poté dvě písmena 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[^d]xx', '!', txt)
print(res)
Výsledkem bude, že se do proměnné uloží následující:
'! ! ! dxx'
Příklad
A nyní je vzor hledání tento: první
znak je 'd' nebo '^',
poté dvě písmena 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[d^]xx', '!', txt)
print(res)
Výsledkem bude, že se do proměnné uloží následující:
'axx bxx ! !'
Příklad
Nemusíte odstranit stříšku z první pozice, stačí ji escapovat pomocí zpětného lomítka a bude znamenat sama sebe:
txt = 'axx bxx ^xx dxx'
res = re.sub('[\^d]xx', '!', txt)
print(res)
Výsledkem bude, že se do proměnné uloží následující:
'axx bxx ! !'
Praktické úlohy
Je dán řetězec:
txt = '^xx axx ^zz bkk @ss'
Napište regulární výraz, který najde řetězce podle vzoru: stříška nebo zavináč, a poté dvě latinská písmena.
Je dán řetězec:
txt = '^xx axx ^zz bkk @ss'
Napište regulární výraz, který najde řetězce podle vzoru: NE stříška a ne zavináč, ale poté dvě latinská písmena.
Je dán řetězec:
txt = '^xx axx ^zz bkk'
Napište regulární výraz, který najde řetězce podle vzoru: ne stříška a ne mezera, ale poté dvě latinská písmena.