Strumenti Utente

Strumenti Sito


prime_operazioni_con_le_espressioni_regolari

Prime operazioni con le espressioni regolari

espressioni.py
# -*- coding: utf-8 -*-
 
import re
 
frase="Se c'è qualcuno, p. es. un nativo di Creta, che dice di mentire, quel qualcuno sta mentendo. Parola di mentitore."
print(frase)
 
frase=re.sub("'","' ", frase)
print(frase)
 
frase=re.sub("[,;:]{1}"," \g<0>", frase)
print(frase)
 
frase=re.sub("\.\s[A-Z]{1}"," \g<0>", frase)
print(frase)
 
frase=frase.lower()
print(frase)
 
frase=frase.split()
print(frase)

La r. 9 separa l'apostrofo dalla parola seguente. La r. 12 separa virgola, punto e punto e virgola dalla parola precedente. La r. 15 separa un punto dalla parola seguente a patto che sia seguito da una sequenza spazio-maiuscola.


Operazioni analoghe possono essere applicate a un testo letto da un file. La r. 6 taglia i primi caratteri del testo, che rappresentano il frontespizio dell'edizione informatica utilizzata. La r. 8 separa una serie di interpunti dalla parola precedente. La r. 9 separa un punto dal carattere precedente a patto che questo non sia un altro punto (in questo modo i tre punti non vengono separati).

da_testo_a_lista.py
import re
f = open('testi/collodi_pinocchio.txt', mode='r', encoding='iso-8859-1')
testo = f.read()
testo=file.read()
testo=testo[1704:]
testo=re.sub("'","' ", testo)
testo=re.sub('[,;:\-?!]{1}',' \g<0>',testo)
testo=re.sub('([^\.]+)(\.)','\g<1> \g<2>',testo)
testo=testo.lower()
testo=testo.split()

Con le istruzioni seguenti gli interpunti vengono eliminati anziché essere considerati come parole grafiche.

import re
f = open('testi/collodi_pinocchio.txt', mode='r', encoding='iso-8859-1') 
testo = f.read()
testo=testo[1704:]
testo=re.sub("'","' ", testo)
testo=re.sub('[\.,;:\-?!]{1}','',testo)
testo=testo.lower()
testo=testo.split()

Per far sì che solo le maiuscole precedute da punto e spazio vengano convertite in minuscole occorre definire una funzione (qui denominata toLowercase):

import re
 
def toLowercase(matchobj):
    return matchobj.group(0).lower()
 
frase="Se c'è qualcuno, p. es. un nativo di Creta, che dice di mentire, quel qualcuno sta mentendo. Parola di mentitore."
print(frase)
 
frase=re.sub("'","' ", frase)
print(frase)
 
frase=re.sub("[,;:]{1}"," \g<0>", frase)
print(frase)
 
frase=re.sub("\.\s[A-Z]{1}"," \g<0>", frase)
print(frase)
 
frase=re.sub("\.\s[A-Z]{1}", toLowercase, frase)
print(frase)
 
frase=frase.split()
print(frase)
 
frase_bis="Se c'è qualcuno, p.es. Epimenide, che dice di mentire, quel qualcuno sta mentendo. Parola di mentitore."
prime_operazioni_con_le_espressioni_regolari.txt · Ultima modifica: 2021/10/29 21:23 da deleteme