[OSM-talk-fr] Regexp pour valider un nom de commune française

Charles Nepote charles at nepote.org
Mar 28 Mar 16:01:03 UTC 2017


Le 28/03/2017 à 17:14, frem a écrit :
> Bonjour,
>
> J’ajouterais bien l’apostrophe typographique (« ’ », U+2019) qui est 
> le caractère que nous devrions utiliser pour les apostrophes 
> (recommandation Unicode) et en plus c’est joli  :-) 
> (http://www.brunobernard.com/des-textes-plus-elegants-avec-les-apostrophes-typographiques/).
>
> *Valides (communes existantes)**
> *Saint-Martin-d’Hères
> L’Île-Rousse
>
> PS : pour les linuxiens, si vous voulez vous extraire de la pauvreté 
> typographique de l’AZERTY standard, je vous recommande le disposition 
> de clavier « Français (variante) », qui rend disponible, par exemple, 
> l’apostrophe typographique avec la combinaison de touche « AltGr + g ».
>
Merci frem. Je vais l'ajouter par acquis de conscience, sachant aussi 
que certains traitements de texte l'ajoutent automatiquement, non ? Des 
sachants pour confirmer ?
Charles.


> Le 28/03/2017 à 14:32, Charles Nepote a écrit :
>> Je cherche donc à vérifier a minima la syntaxe d'un nom de commune à 
>> travers une regexp. J'ai produit la regexp suivante qui passe mes 
>> tests sauf qu'elle me semble un peu trop permissive. Toute remarque 
>> ou aide appréciée :)
>> (J'ai utilisé la forme "extended" qui permet d'étaler la regexp sur 
>> plusieurs lignes et de la commenter.)
>>
>> /
>> ^
>> (                           # Débute par un article
>>   Le\ |La\ |Les\ |Los\ |Aux\ |L'
>>   |                         # ou
>> )                           # rien
>>
>> ([A-ZÉÇŒÈÎ])                # Suivi d'une majuscule
>>
>> (                           # puis ...
>>  ((-|                       #   un trait-d'union ou
>>   \ |                       #   un espace ou
>>   \ -\ |                    #   un espace suivi d'un trait d'union 
>> suivi d'un espace ou
>>   ')                        #   une apostrophe
>>   [A-ZÉÇŒÈÎ])               #   suivi d'une majuscule
>>  |                          #   ou bien
>>  ('|-|\ |)                  #   une apostrophe ou un trait-d'union ou 
>> un espace ou rien
>>   [a-zàâéèêëïîÿôûüœç]       #   suivi d'une minuscule
>> )*                          # 0 ou plusieurs fois
>>
>> (                           # terminé par
>>   \ \([A-Z][a-z]*\)         # un espace suivi d'un mot entre 
>> parenthèse débutant par une majuscule
>>   |                         # ou
>> )                           # rien
>> $
>> /gmx                        # global, multiline, extended
>>
>> Vous pouvez la retrouver et la tester ici : 
>> https://regex101.com/r/knDFaB/4
>




Plus d'informations sur la liste de diffusion Talk-fr