[OSM-talk-fr] Regexp pour valider un nom de commune française
Christian Quest
cquest at openstreetmap.fr
Mar 28 Mar 21:32:15 UTC 2017
Je ne suis pas chaud pour intégrer des logiques de typographie dans des
logiques de contrôle de qualité des données.
A mon avis, c'est un traitement à faire en aval si l'on veut une
impression propre, mais en général les données ne sont pas saisies avec
ce type de caractères... c'est déjà bien quand on a les accents et pas
que des majuscules, ne poussons pas le bouchon trop loin ;)
Le 28/03/2017 à 18:01, Charles Nepote a écrit :
> 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
>>
>
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr
--
Christian Quest - OpenStreetMap France
Plus d'informations sur la liste de diffusion Talk-fr