risultati di Google Maps sono spesso rappresentati in tal modo:Come dividere Python da un personaggio mantenendo questo carattere?
'\n113 W 5th St\nEureka, MO, United States\n(636) 938-9310\n'
Un'altra variazione:
'Clayton Village Shopping Center, 14856 Clayton Rd\nChesterfield, MO, United States\n(636) 227-2844'
E un altro:
'Wildwood, MO\nUnited States\n(636) 458-7707'
Avviso la variazione nel posizionamento delle \n
caratteri.
Sto cercando di estrarre le prime linee X come indirizzo e l'ultima riga come numero di telefono. Un'espressione regolare come (.*\n.*)\n(.*)
sarebbe sufficiente per il primo esempio, ma non è sufficiente per gli altri due. L'unica cosa su cui posso contare è che il numero di telefono sarà nel formato (ddd) ddd-dddd
.
Penso che una regex che consentirà ogni variazione possibile sarà difficile da trovare. È possibile utilizzare split()
, ma mantenere il carattere che abbiamo diviso? Quindi, in questo esempio, diviso per "("
, per dividere l'indirizzo e il numero di telefono, ma conservare questo carattere nel numero di telefono? Potrei concatenare lo "("
allo split("(")[1]
, ma esiste un modo più ordinato?
un modo più semplice: leggere la linea di corda per riga . Quando la linea non corrisponde al numero di telefono, memorizzarlo nella variabile dell'indirizzo (un elenco), quando il modello corrisponde a memorizzare il risultato nella variabile del telefono e unire l'elenco di indirizzi con '\ n' per ottenere una stringa. –
Vuoi farlo solo con gli indirizzi degli Stati Uniti? –