Expressions regulières avec exceptions
Posté : 18 févr. 2012, 14:59
Bonjour à tous,
J'essaye depuis un moment de transformer une chaîne de la façon suivante : séparer la chaîne en mots avec les espaces et les traits d'union comme délimiteurs, tout mettre en minuscule, puis chaque première lettre en majuscule, sauf si le mot est l'un des mots suivants : "les", "le", "la", "de", "des", "du", "sur","sous", et enfin retourner la chaîne intiale ainsi modifiée, avec les espaces et traits d'union à leurs places initiales.
Ce qui donnerait par exemple : magie_du_php("saint-MARTIN Sur-LE kloug") => "Saint-Martin sur-le Kloug"
J'ai essayé plein de trucs compliqués à base de str_split(), de preg_split() et autre explode() et substr(), mais je n'y parviens pas. J'imagine qu'il doit y avoir quelque chose à faire avec preg_replace, mais décidément, je n'arrive pas à maîtriser les expressions régulières...
Merci pour votre aide !
J'essaye depuis un moment de transformer une chaîne de la façon suivante : séparer la chaîne en mots avec les espaces et les traits d'union comme délimiteurs, tout mettre en minuscule, puis chaque première lettre en majuscule, sauf si le mot est l'un des mots suivants : "les", "le", "la", "de", "des", "du", "sur","sous", et enfin retourner la chaîne intiale ainsi modifiée, avec les espaces et traits d'union à leurs places initiales.
Ce qui donnerait par exemple : magie_du_php("saint-MARTIN Sur-LE kloug") => "Saint-Martin sur-le Kloug"
J'ai essayé plein de trucs compliqués à base de str_split(), de preg_split() et autre explode() et substr(), mais je n'y parviens pas. J'imagine qu'il doit y avoir quelque chose à faire avec preg_replace, mais décidément, je n'arrive pas à maîtriser les expressions régulières...
Merci pour votre aide !