Progetto:Bot/Programmi in Python per i bot/regexLoad.py
#!/usr/bin/env python
# -*- coding: cp1252 -*-
# legge un file UTF-8 con regex predisposte (vedi esempio sotto)
# e restituisce una lista di oggetti SRC e di stringhe subst
import re
def regexLoader(f="regex.txt"):
r=unicode(open(f).read(),"utf-8")
r=r.split("\n")
if r[0].startswith(u'\ufeff'):
r[0]=r[0][1:]
regexList=[]
for i in r:
if not i.startswith("#") and i.strip()!="":
regex=i.split("\t")
regexList.append([re.compile(regex[0],int(regex[2])),regex[1]])
return regexList
[visualizza] [modifica] Documentazione
Questa documentazione è transclusa da Progetto:Bot/Programmi in Python per i bot/regexLoad.py/doc. (modifica | cronologia)
Descrizione
[modifica]Lo script contiene un'unica funzione, che va integrata in uno script più esteso.
La funzione regexLoad() legge un file txt UTF-8 in cui sono memorizzate una serie di regex, una per riga, ciascuna delle quali contiene quattro elementi separati da tab:
- stringa regex,
- stringa subst,
- modificatori (in formato numerico),
- commento.
Le stringhe che iniziano con il carattere # sono ignorate. Quindi, per adattare la lista a un'opera, basta disattivare o attivare le regex opportune.
Esempio utilizzato per la pre-elaborazione python di OCR:
############### # schemi regex # elemento 1: espressione regex # elemento 2: espressione subs # elemento 3: codice parametri, da sommare (MULTILINE=8; IGNORECASE=2) é è 0 ([^{])({)([^{]) \1(\3 0 conversione graffe singole in tonde ([^}])(})([^}]) \1)\3 0 conversione graffe singole in tonde ([^'])(')([^']) \1’\3 0 conversione apostrofi singoli \( ( 0 normalizzazione spaziatura \) ) 0 ([\.,;:?!]) \1 0 normalizzazione spaziatura \r\n \n 0 \*$ - 8 conversione apostrofo a fine riga in trattino ........
[[Categoria:|Bot/Programmi in Python per i bot/regexLoad.py]]