Inleiding tot gereelde uitdrukkings in Python
Gereelde uitdrukkings is instruksies vir komplekse soek en vervang (of bloot soek). Hulle laat baie interessante dinge toe, maar is ongelukkig redelik swaar om te bemeester.
Om met gereelde uitdrukkings in Python te begin werk,
moet ons die spesiale module re invoer:
import re
Die module re sluit metodes in,
bedoel vir werk met gereelde
uitdrukkings. 'n Gereelde uitdrukking
verteenwoordig 'n stel instruksies en bestaan
uit twee tipes simbole: dié wat
hulself voorstel en bevelsimbole,
wat spesiale simbole genoem word.
Kennis maak met gereelde uitdrukkings is beter
om te begin by die voorbeeld van die metode sub, wat
gebruik word vir vervangings in 'n string. Die eerste
parameter van die metode aanvaar wat om te verander,
die tweede - waarmee om te vervang. In die derde parameter
specifiseer ons die string waarin die
vervanging gedoen moet word. In die vierde opsionele parameter
stel ons die aantal vervangings. Die eenvoudigste
vervanging met hierdie metode sal
so lyk:
res = re.sub('a', '!', 'bab')
print(res) # sal 'b!b' uitdruk
Soos jy opgemerk het, dui letters in die gereelde uitdrukking
hulself aan. Dieselfde geld ook vir syfers. Kom ons vervang die syfer
2 met !:
res = re.sub('2', '!', '12abc3')
print(res) # sal '1!abc3' uitdruk
Maar 'n punt is 'n spesiale simbool
en dui enige simbool aan. In die volgende
voorbeeld, kom ons vind 'n substring volgens so 'n
patroon: letter 'x', dan enige
simbool, dan weer letter 'x':
res = re.sub('x.x', '!', 'xax eee')
print(res) # sal '! eee' uitdruk
Gegee 'n string:
txt = 'ahb acb aeb aeeb adcb axeb'
Skryf 'n gereelde uitdrukking wat die strings
'ahb', 'acb', 'aeb'
volgens die patroon sal vind: letter 'a', enige
simbool, letter 'b'.
Gegee 'n string:
txt = 'aba aca aea abba adca abea'
Skryf 'n gereelde uitdrukking wat die strings
'abba', 'adca', 'abea'
volgens die patroon sal vind: letter 'a', 2
enige simbole, letter 'a'.
Gegee 'n string:
txt = 'aba aca aea abba adca abea'
Skryf 'n gereelde uitdrukking wat die strings
'abba' en 'abea' sal vind, sonder om
'adca' te vang.