Saya mencari solusi untuk membagi alamat Swiss yang representatif menjadi jalan (dan nomor jalan) dan kode pos (dan nama tempat).

Sarankan, saya memiliki alamat berikut:

'Bahnhofstrasse 1, 8001 Zürich'

Hasil yang saya cari adalah:

street: 'Bahnhofstrasse 1'
place: '8001 Zürich'

Namun, terkadang ada koma dan terkadang tidak. Tapi kode pos selalu terdiri dari 4 digit?

Saya menggunakan .split(') sejauh ini tetapi itu hanya berfungsi jika ada koma.

-3
Patrick Balada 10 Agustus 2017, 21:58

2 jawaban

Jawaban Terbaik
(?P<street>.*?[0-9]+)(?P<place>.*?[0-9]+.*)

Penjelasan

Segala sesuatu di antara tanda kurung bulat () adalah grup tangkap dengan menambahkan ?P<street> kita memberinya nama jalan (yang opsional, tetapi lebih mudah dibaca).

[0-9]+ berarti 1 angka atau lebih

.*? berarti segalanya (malas): Cocok antara nol dan waktu tidak terbatas, sesedikit mungkin, berkembang sesuai kebutuhan

Gabungan info ini membuat regex yang bagus untuk situasi ini

enter image description here

0
online Thomas 10 Agustus 2017, 19:13