Saya mencoba mencari kata Gadaffi. Apa ekspresi reguler terbaik untuk mencari ini?
Upaya terbaik saya sejauh ini adalah:
\b[KG]h?add?af?fi$\b
Tapi sepertinya saya masih kehilangan beberapa jurnal. Ada saran?
Pembaruan: Saya menemukan daftar yang cukup luas di sini: http://blogs.abcnews.com/theworldnewser/2009/09/how-banyak-beda-selalu-dapat-anda-Anda-mantra-gaddafi.html
Jawaban di bawah cocok dengan semua 30 varian:
Gadaffi Gadafi Gadafy Khadafi Gaddafy Khadafi Gadhafi Gathafi Ghadaffi Ghadafi Ghaddafi Ghaddafy Gheddafi Kadaffi Kadafi Khadafi Kadhafi Kazzafi Khadaffy Khadafy Khaddafi Qadafi Qaddafi Qadhafi Qadhdhafi Qadthafi Qathafi Quathafi Qudhafi Kad'afi
.+
menjadi satu-satunya ungkapan reguler yang valid.Jawaban:
\b[KGQ]h?add?h?af?fi\b
Transkripsi bahasa Arab adalah (kata Wiki) "Qaḏḏāfī", jadi mungkin menambahkan Q. Dan satu H ("Gadhafi", seperti yang disebutkan dalam artikel (lihat di bawah)).
Btw, mengapa ada
$
di akhir regex?Btw, artikel bagus tentang topik ini:
Gaddafi, Kadafi, atau Qaddafi? Mengapa nama pemimpin Libya dieja dengan berbagai cara? .
EDIT
Untuk mencocokkan semua nama dalam artikel yang Anda sebutkan nanti , ini harus cocok dengan semuanya. Semoga saja itu tidak cocok dengan banyak hal lain: D
sumber
d
juga cocok dengan ḏ?Qaḏḏāfī
, regex harus memeriksaQaddafi
juga. Jika Anda ingin mencari transkripsi arab juga, cari saja yang - saya tidak berpikir ada lebih banyak varian transkripsi arab, hanya transkripsi bahasa inggris.?
alih - alih huruf). Mungkin butuh banyak usaha keras.Mudah ...
(Qadaffi|Khadafy|Qadafi|
...)
... didokumentasikan sendiri, dipelihara, dan dengan asumsi mesin regexp Anda benar-benar mengkompilasi ekspresi reguler (daripada menafsirkannya), itu akan dikompilasi ke DFA yang sama dengan solusi yang lebih dikaburkan.Menulis ekspresi reguler yang ringkas seperti menggunakan nama variabel pendek untuk mempercepat program. Ini hanya membantu jika kompiler Anda mati otak.
sumber
Satu hal yang menarik untuk dicatat dari daftar ejaan potensial Anda adalah bahwa hanya ada 3 nilai Soundex untuk daftar yang terkandung (jika Anda mengabaikan 'Kazzafi' outlier)
G310, K310, Q310
Sekarang, ada positif palsu di sana ('Godby' juga adalah G310), tetapi dengan menggabungkan metafon hit terbatas juga, Anda dapat menghilangkannya.
Beberapa perubahan, dan katakanlah beberapa transliterasi cyrillic, dan Anda akan memiliki solusi yang cukup kuat.
sumber
Menggunakan modul CPAN Regexp :: Assemble :
Ini menghasilkan ekspresi reguler berikut:
sumber
Saya pikir Anda terlalu rumit di sini. Regex yang benar adalah sesederhana:
Ini cocok dengan rangkuman dari tujuh poin kode Unicode Arab yang membentuk kata القذافي (yaitu Gadaffi).
sumber
Jika Anda ingin menghindari mencocokkan hal-hal yang tidak ada yang pernah digunakan (yaitu menghindari cenderung ke arah ". +") Pendekatan terbaik Anda adalah membuat ekspresi reguler yang hanya semua alternatif (mis. (Qadafi | Kadafi | ...) ) kemudian kompilasi itu menjadi DFA, dan kemudian ubah kembali DFA menjadi ekspresi reguler. Dengan asumsi implementasi yang cukup masuk akal yang akan memberi Anda ekspresi reguler "terkompresi" yang dijamin tidak mengandung varian yang tidak terduga.
sumber
Jika Anda memiliki daftar yang konkrit dari 30 kemungkinan, cukup gabungkan semuanya bersama-sama dengan sekelompok "ors". Maka Anda dapat yakin bahwa itu hanya cocok dengan hal-hal persis yang telah Anda daftarkan, dan tidak lebih. Mesin RE Anda mungkin akan dapat dioptimalkan lebih lanjut, dan, yah, dengan 30 pilihan meskipun tidak, itu masih bukan masalah besar. Mencoba untuk bermain-main dengan secara manual mengubahnya menjadi "pintar" RE tidak mungkin menjadi lebih baik dan mungkin menjadi lebih buruk.
sumber
Tentu saja bukan versi yang paling optimal, berpisah pada suku kata untuk memaksimalkan kecocokan sambil berusaha memastikan kami tidak mendapatkan hasil positif yang salah.
sumber
Nah karena Anda mencocokkan kata-kata kecil mengapa Anda tidak mencoba mesin pencari kesamaan dengan jarak Levenshtein ? Anda dapat mengizinkan paling banyak k penyisipan atau penghapusan. Dengan cara ini Anda dapat mengubah fungsi jarak ke hal lain yang berfungsi lebih baik untuk masalah spesifik Anda. Ada banyak fungsi yang tersedia di perpustakaan simMetrics.
sumber
Alternatif yang mungkin adalah alat online untuk menghasilkan ekspresi reguler dari contoh http://regex.inginf.units.it . Berikan kesempatan!
sumber
Mengapa tidak melakukan pendekatan campuran? Sesuatu antara daftar semua kemungkinan dan Regex yang rumit yang sangat cocok.
Regex adalah tentang pencocokan pola dan saya tidak dapat melihat pola untuk semua varian dalam daftar. Mencoba melakukannya, juga akan menemukan hal-hal seperti "Gazzafy" atau "Quud'haffi" yang kemungkinan besar bukan varian yang digunakan dan pasti tidak ada dalam daftar.
Tapi saya bisa melihat pola untuk beberapa varian, dan akhirnya saya menemukan ini:
Pada awalnya saya daftar yang mana saya tidak bisa melihat pola, kemudian diikuti oleh beberapa varian di mana ada pola.
Lihat di sini di www.rubular.com
sumber
\b
hanya termasuk dalam alternatif pertama dan terakhir.Saya tahu ini adalah pertanyaan lama, tapi ...
Tidak satu pun dari kedua regex ini yang tercantik, tetapi keduanya dioptimalkan dan keduanya SEMUA cocok dengan variasi dalam posting asli.
"Little Beauty" # 1
"Little Beauty" # 2
Istirahat dalam Damai, Muammar.
sumber
Hanya sebuah tambahan: Anda harus menambahkan "Gheddafi" sebagai ejaan alternatif. Jadi RE seharusnya
sumber
Di bagian:
Catatan: Hanya ingin mencoba ini.
sumber
Apa lagi yang dimulai dengan Q, G, atau K, memiliki iklan, z atau t di tengah, dan berakhir dengan "fi" yang sebenarnya dicari orang?
Selesai
Menarik bahwa saya mendapatkan suara turun. Dapatkah seseorang meninggalkan beberapa hal positif yang salah dalam komentar?
sumber
kartografi kryptografi Gaddafi Qaddafi gadafi gaddafi katastloofi katastorfi katastrofi khadaffi kadafi kardiyografi gaskromatografi kardiografi kinematografi kromatografi krystallografi kulturgeografi gandolfi grizzaffi gadhafi kadaffi kaddafi khaddafi qaddafi qadhafi quedaffi gordonsCHsKFI
. Namun, beberapa di antaranya bukan positif palsu .[iy]
bukan hanyai
:gelatinify gentrify ghostlify giddify gladify goutify gratify "Gyula Dessewffy" katasrofy katastrofy khadafy quantify quasi-deify quizzify