Il mio obiettivo è quello di estrapolare un indirizzo NON formattato (dunque: "Via mazzini, 20100 Milano" ma anche "v. mazzini / milano MI" o "zona parioli roma") da un testo. Roba da niente.

Qualcuno sa darmi qualche indicazione di partenza?

Ipotizzare di farlo solo con delle regex mi pare impossibile. Ho un DB con tutti i comuni, provincie, cap d'Italia ma zone e via sono fuori discussione.

Stavo ipotizzando di passare il testo al setaccio e controllare se appare il nome di un comune giusto per fare un primo passo ma già mi pare piuttosto dispendioso in termini di cpu. Non penso che una mega regex con "milano|roma|genova|e altri 8000! comuni" sia una buona mossa.
Non posso neanche però fare un ciclo e prendere parola per parola il testo e confrontarla con 8000 stringhe!

Qualcuno sa darmi qualche suggerimento?