SanchoDellaVega Posté 17 Décembre 2010 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
MarvinLeRouge Posté 17 Décembre 2010 Partager 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) Lien vers le commentaire Partager sur d’autres sites More sharing options...
SanchoDellaVega Posté 17 Décembre 2010 Auteur Partager Posté 17 Décembre 2010 Merci beaucoup, ça marche parfaitement Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jeanluc Posté 17 Décembre 2010 Partager Posté 17 Décembre 2010 Bonsoir, Si on parle de voyelles, il me semble qu'il faudrait y inclure Y : asynchrone => azynchrone. Jean-Luc Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dadou Posté 17 Décembre 2010 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jeanluc Posté 18 Décembre 2010 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
SanchoDellaVega Posté 18 Décembre 2010 Auteur Partager 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 ! @++ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant