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

frem mjnpodq.frem at harmon.fr
Mar 28 Mar 15:14:21 UTC 2017


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 ».

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

-- 
Contributeur OpenStreetMap <https://www.openstreetmap.org/user/frem-eu>.
Retrouvez aussi une partie des contributeurs OpenStreetMap de la Vienne 
aux permanences de l’APP3L <http://app3L.org>.



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