SanchoDellaVega Posté 17 Décembre 2010 Posté 17 Décembre 2010 Bonjour à tous, je suis un grand débutant en expression régulière, et j'ai un souci : je souhaite remplacer dans un mot un s en z s'il est entouré de voyelle. Pour l'instant, j'ai fait ça : $Word = preg_replace( '`(?<=[AOIEU])S(?<![AOIEU])`', 'Z', $Word ) mais ça ne marche pas (du moins, ça prend aussi en compte le s suivi d'une consonne ) Si une âme charitable pouvait m'aider ? merci d'avance
MarvinLeRouge Posté 17 Décembre 2010 Posté 17 Décembre 2010 Salut, Je t'ai fait ça vite fait (c'est fait à l'arrache, je ne garantis rien) : $motif = "|([aeiou])s([aeiou])|";$remplace = "$1" . "z" . "$2";$str = "salut isabelle pas trop de pression sur ton issue isothermique asynchrone assassine disposante ?";$str2 = preg_replace($motif, $remplace, $str);echo ("$str<br />$str2"); Et ça donne ça : salut isabelle pas trop de pression sur ton issue isothermique asynchrone assassine disposante doseuse ?salut izabelle pas trop de pression sur ton issue izothermique asynchrone assassine dispozante dozeuze ? Le motif : une voyelle suivie d'un s suivi d'une voyelle, le tout entre délimiteurs Le remplacement : la première expression (la première voyelle) suivie d'un z suivi de la 2ème expression (la 2ème voyelle)
SanchoDellaVega Posté 17 Décembre 2010 Auteur Posté 17 Décembre 2010 Merci beaucoup, ça marche parfaitement
Jeanluc Posté 17 Décembre 2010 Posté 17 Décembre 2010 Bonsoir, Si on parle de voyelles, il me semble qu'il faudrait y inclure Y : asynchrone => azynchrone. Jean-Luc
Dadou Posté 17 Décembre 2010 Posté 17 Décembre 2010 Non parce qu'a mon avis c'est une histoire de sonorité, le s se prononce z quand il est entre deux voyelles sauf pour le y
Jeanluc Posté 18 Décembre 2010 Posté 18 Décembre 2010 On s'écarte de la question des regexp, mais comment prononces-tu "analyse" ou "paysan" ? Et il y a des exceptions avec d'autres voyelles, comme "asexué". Bon amusement, pour construire la regexp pour tous ces cas ! Jean-Luc
SanchoDellaVega Posté 18 Décembre 2010 Auteur Posté 18 Décembre 2010 c'est vrai qu'il y a des exceptions avec le y, mais je pense qu'il y a plus de mot ou le s ne devient pas z en présence d'un Y, du moins il m'en vient plus à l'esprit... sinon le but final est de faire un soundex personnalisé pour les sonorités françaises. En effet, dans les algo de soundex que j'ai trouvé, la première chose qui est faite, c'est de supprimer toutes les voyelles sauf la première du mot si c'est un A. Mais dans ce cas, l'algo va trouver par exemple que "curé" et "carré" sont identiques, alors que mon but est plutôt de régler les problèmes de fautes d'orthographes. Ex : le gars recherche philippe mais il tape filipe etc Bien sûr, mon algo ne prendra jamais en compte toutes les exceptions de la langue française (du moins il ne serait pas rentable en terme de temps pour moi d'essayer de le faire), sans compter tous les mots anglais, ou même à consonance germanique du côté de nos amis alsaciens. mais bon je pense arriver quand même à un petit quelque chose, je vous tiendrai au courant ! @++
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant