Teksti Tükeldus: boundary ja split() funktsioon¶
Piiri (\b) kasutamine regulaaravaldistes¶
(\b) ehk piiri kasutamine regulaaravaldistes on vajalik vältimaks osalisi vasteid (või laiskusest panna ette tühikut eirav muster), näiteks otsides sõna “test” võib ilma \b kasutamata leida selle ka sõnast “contest”.
Regulaaravaldistes tähistab \b sõna piiri ning tavaliselt pannakse otsitav muster kahe piiri vahele. Näiteks soovides leida sõna, mis koosneb läbivalt suurtest tähtedest, pead panema sõna mõlemale poole \b. See aitab vältida olukorda, kus muster leiab ka osalisi vasteid, näiteks nimesid, mis algavad suure tähega.
Siiski, on juhtumeid, kus piisab vaid mustri algusesse \b panemisest. Näiteks, kui otsid lause seest numbreid ja on teada, et lauses on ainult üks number. Kui jätta \b üldse välja numbrit otsiva mustri algusest, leiab kood tihti vaid viimase arvu tähe, näiteks arvust 5001 leitakse vaid 1.
Läbiva suurtähtede leidmine:
import re
input_string = "TEST 123 Example A"
result = re.search(r"\b[A-Z]+\b", input_string)
if result:
print(result.groups()) # ('TEST’)
Sisendi tükeldamine split() funktsiooniga¶
Tükeldamine ehk split() funktsioon lõikab sisendi tükideks otsitava mustrite järgi ning tagastab järjendis sõnedena kõik osad, mis mustrile ei vasta.
split() funktsioon numbrite kaotamiseks tekstis:
import re
pattern = r'\d+'
text = "one1two2three3four"
result = re.split(pattern, text)
print(result) # ['one', 'two', 'three', 'four']