362 votes

Expression régulière pour rechercher des Kadhafi

Je suis en train de rechercher le mot Kadhafi. Quelle est la meilleure expression régulière à la recherche de ce?

Ma meilleure tentative à ce jour est de:

\b[KG]h?add?af?fi$\b

Mais j'ai toujours semblent être à côté de certaines revues. Toutes les suggestions?

Mise à jour: j'ai trouvé une jolie liste ici: http://blogs.abcnews.com/theworldnewser/2009/09/how-many-different-ways-can-you-spell-gaddafi.html

La réponse ci-dessous correspond à toutes les 30 variantes:

Kadhafi
Gadafi
Gadafy
Kadhafi
Gaddafy
Gaddhafi
Kadhafi
Gathafi
Ghadaffi
Ghadafi
Kadhafi
Ghaddafy
Gheddafi
Kadaffi
Kadafi
Kaddafi
Kadhafi
Kazzafi
Khadaffy
Khadafy
Khaddafi
Qadafi
Kadhafi
Kadhafi
Qadhdhafi
Qadthafi
Qathafi
Quathafi
Qudhafi
Kad'afi

278voto

Chris K Points 2155

Facile... ... ... il est auto documenté, maintenable et en supposant que votre moteur de regexp compile en fait régulièrement des expressions (plutôt que les interpréter), il compilera à la DFA même qui serait une solution plus obscurcie.

Écriture d’expressions régulières compactes est similaire à l’utilisation des noms de variables courts d’accélérer un programme. Il n’est utile si votre compilateur est en état de mort cérébrale.

139voto

Czechnology Points 8031

\b[KGQ]h?add?h?af?fi\b

Arabe la transcription est (Wiki, dit) "Qaḏḏāfī", alors peut-être l'ajout d'un Q. Et une H ("Kadhafi", comme l'article (voir ci-dessous) mentions).

Btw, pourquoi est-il un $ à la fin de la regex?


Btw, joli article sur le sujet:

Kadhafi, Kadafi, ou Kadhafi? Pourquoi le chef de l'état Libyen du nom orthographié de différentes manières?.


MODIFIER

Pour correspondre à tous les noms dans l' article que vous avez mentionné plus tard, cela devrait correspondre à tous. Espérons juste qu'il ne correspond pas à un tas d'autres choses :D

\b(Kh?|Gh?|Qu?)[aeu](d['dt]?|t|zz|dhd)h?aff?[iy]\b

45voto

tomwalsham Points 691

Une chose intéressante à noter dans votre liste des orthographes possibles, c’est qu’il y a seulement 3 valeurs Soundex pour voir le contenu (si vous ignorez la valeur aberrante « Kazzafi »)

G310, K310, Q310

Maintenant, il existe des faux positifs là-dedans (« Godby » est aussi G310), mais en combinant les hits metaphone limité ainsi, vous pouvez les éliminer.

Quelques modifications et permet de dire une translittération cyrillique, et vous aurez une solution assez robuste.

27voto

Prakash K Points 1915

En utilisant le module CPAN Regexp::Assemble:

Ce qui produit l’expression régulière suivante :

24voto

Staffan Nöteberg Points 1832

Je pense que vous êtes plus de compliquer les choses ici. La regex correct est aussi simple que :

Elle correspond à la concaténation des sept points de code Unicode arabe qui forme le mot القذافي (c.-à-d. Kadhafi).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X