Saya memiliki data atribut dengan nama pemilik. Saya perlu memilih data yang berisi nama belakang dua kali .
Misalnya, saya mungkin memiliki nama pemilik yang bertuliskan " BENNETT MCCARL & ARNETTE BENNETT ".
Saya ingin memilih baris dalam tabel atribut yang memiliki nama belakang yang berulang seperti contoh di atas. Adakah yang tahu bagaimana saya bisa memilih data itu?
Jawaban:
Ekspresi kalkulator bidang berdasarkan jawaban ini
'================================================= =
Ini akan mengembalikan jumlah maksimum kata yang sama dalam string
sumber
Anda dapat menggunakan modul koleksi Python dan Kursor Pembaruan untuk mencapai hal ini. Metode ini menambahkan bidang baru dan mengisinya dengan
1
jika ada duplikat, jika tidak,0
jika tidak ada duplikat.sumber
Bagaimana dengan menggunakan
re
danset
dan pengaturan bendera (di sini 0 dan 1) di python-re
akan mengekstrak semua nama (terakhir dan pertama) dariBENNETT MCCARL & ARNETTE BENNETT
tanpa&
. Untuk pencocokan polare
adalah prioritas tertinggi - Anda dapat menggunakanre
apa yang Anda inginkan.Dan telepon
sorter( !N! )
** Lihat bagaimana
regex
meraih kata-kata diLIVE DEMOPerhatikan bahwa semua jawaban ini menangani masalah dengan anggapan bahwa data Anda disanitasi yaitu memiliki ruang yang tepat di antara kata-kata tetapi bagaimana jika data Anda adalah sesuatu,
BENNETTMCCARL&ARNETTEBENNETT
maka semua ini akan gagal. Dalam hal ini Anda mungkin perlu menggunakan algoritma Suffix Tree dan untungnya python memiliki beberapa perpustakaan seperti di sini .sumber
Dengan asumsi data sumber Anda adalah FeatureClass / Table dalam File GeoDatabase maka permintaan berikut akan memilih baris yang Anda butuhkan:
name
adalah lapangan, saya kebetulan menyebutnyaname
. Bagian pertama menguji sisi kiri, bagian kedua menguji sisi kanan. Query ini jelas sulit dikodekan untuk mencari BENNETT, jika Anda perlu memilih dengan nama keluarga lain semoga Anda dapat mengetahui apa yang perlu diubah?sumber