<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Bonjour à tous,<br>
<br>
<br>
Un peu hors-sujet mais ça pourrait aider les outils de contrôle
qualité d'OSM.<br>
Dans les divers outils et process informatiques il n'est pas
toujours possible d'aller appeler la BAN pour vérifier le nom d'une
commune.<br>
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 :)<br>
(J'ai utilisé la forme "extended" qui permet d'étaler la regexp sur
plusieurs lignes et de la commenter.)<br>
<br>
<tt>/<br>
^<br>
( # Débute par un article<br>
Le\ |La\ |Les\ |Los\ |Aux\ |L'<br>
| # ou<br>
) # rien<br>
<br>
([A-ZÉÇŒÈÎ]) # Suivi d'une majuscule<br>
<br>
( # puis ...<br>
((-| # un trait-d'union ou<br>
\ | # un espace ou<br>
\ -\ | # un espace suivi d'un trait d'union
suivi d'un espace ou<br>
') # une apostrophe<br>
[A-ZÉÇŒÈÎ]) # suivi d'une majuscule<br>
| # ou bien<br>
('|-|\ |) # une apostrophe ou un trait-d'union
ou un espace ou rien<br>
[a-zàâéèêëïîÿôûüœç] # suivi d'une minuscule<br>
)* # 0 ou plusieurs fois<br>
<br>
( # terminé par<br>
\ \([A-Z][a-z]*\) # un espace suivi d'un mot entre
parenthèse débutant par une majuscule<br>
| # ou<br>
) # rien<br>
$<br>
</tt><tt>/gmx # global, multiline, extended</tt><tt><br>
</tt><br>
Vous pouvez la retrouver et la tester ici :
<a class="moz-txt-link-freetext" href="https://regex101.com/r/knDFaB/4">https://regex101.com/r/knDFaB/4</a><br>
<br>
J'ai listé ci-dessous des cas de tests invalides, théoriques et
valides.<br>
<br>
<b>Invalides</b><b><br>
</b>AA<br>
NNouvelle<br>
A'<br>
Nouvelle'<br>
A-<br>
Nouvelle-<br>
AA'<br>
AA-<br>
NNouvelle'<br>
NNouvelle-<br>
-Ville<br>
--Ville<br>
'Francheville<br>
''Francheville<br>
A''ville<br>
L''Épine<br>
A--Ville<br>
Nouvelle--Ville<br>
A Ville<br>
Nouvelle Ville<br>
A'-Ville<br>
Nouvelle'-Ville<br>
A-'Ville<br>
Nouvelle-'Ville<br>
A' Ville<br>
Nouvelle' Ville<br>
A- Ville<br>
Nouvelle- Ville<br>
Nouvelle-es- Ville<br>
Saint-Martin-es- Ville<br>
AAA<br>
AaA<br>
A a<br>
A A<br>
<br>
<br>
<b>Théoriques ???</b><b><br>
</b>A A<br>
A'A<br>
A-A<br>
Nouvelle'Ville<br>
<br>
<br>
<b>Valides (communes existantes)</b><b><br>
</b>Marseille<br>
Saint-Remy-en-Bouzemont-Saint-Genest-et-Isson<br>
Saint-Martin-d'Hères<br>
Hœdic<br>
Saint-Genis<br>
Y<br>
Ay<br>
Bû<br>
Oô<br>
Aast<br>
Niederschaeffolsheim<br>
Kermoroc'h<br>
M'tsangamouji<br>
L'Île-Rousse<br>
L'Épine<br>
Le Mans<br>
La Celle-Saint-Cloud<br>
Le Pont-de-Beauvoisin<br>
Hitiaa O Te Ra<br>
Saint-Nom-la-Bretèche<br>
Saint-Germain-de-Tallevende-la-Lande-Vaumont<br>
Beaujeu-Saint-Vallier-Pierrejux-et-Quitteur<br>
Île-aux-Moines<br>
Île-d'Aix<br>
Château-Chinon (Campagne)<br>
Château-Chinon (Ville)<br>
Noirmoutier-en-l'Île<br>
Aix-Villemaur-Pâlis<br>
La Chapelle du Lou du Lac<br>
Saint-Thégonnec Loc-Eguiner<br>
Val d'Arcomie<br>
Ance Féas<br>
Le Bas Ségala<br>
Le Haut Soultzbach<br>
Bairon et ses environs<br>
Dhuys et Morin-en-Brie<br>
Parves et Nattages<br>
Haut Valromey<br>
Saint Paterne - Le Chevain<br>
Pont de Montvert - Sud Mont Lozère<br>
Saint Géry-Vers<br>
Villages du Lac de Paladru<br>
Bagnoles de l'Orne Normandie<br>
Cœur de Causse<br>
Beauce la Romaine<br>
Les Hauts d'Anjou<br>
Les Pechs du Vers<br>
Segré-en-Anjou Bleu<br>
Ingrandes-Le Fresne sur Loire<br>
Montrichard Val de Cher<br>
<br>
<br>
Charles.<br>
<br>
</body>
</html>