Se non confronti le parole con nomi veri di città non hai modo di sapere cosa hai preso.
In un db devi farti una tabella con tutti i nomi di città esistenti, se ti interessano solo città italiane è ancora fattibile, ci vorrà solo un po' di tempo per riempire la tabella, se ti servono città del mondo.... aiuto!
Ad ogni modo, prendere le parole con iniziale maiuscola non ti assicura al 100% di prendere tutte le eventuali città, che succede se per un errore di battitura qualche città l'hanno scritta con la minuscola?
Devi controllare tutte le parole del testo e confrontarle una ad una con il contenuto del db.