Auteur | Message |
---|---|
ddpetit
| Damien Inscrit le : 03/05/2006 |
# Le 22/11/2008 à 19:27 Malheureusement ça ne change rien, normalement ce cas est géré par le # ... #i. Merci quand meme de ton aide Loccasion.com - Vente de voitures d'occasion - Mandataire Auto |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 22/11/2008 à 19:28 Ceci fonctionnera un peu mieux (si tous les mots font au moins 4 lettres) : $string = preg_replace('#([a-z0-9]{2})\.([a-z0-9]{2})#i', '$1 $2', $preg); Idéalement il faudrait indiquer que la seconde expression (voir la première) ne "consomme" pas de caractères ; mais je ne me souviens jamais d'une fois à l'autre comment on fait ça |
tonguide
| Jeremy Inscrit le : 09/05/2005 |
# Le 22/11/2008 à 19:34 AH oui ddpetit, t'as raison. |
Fred
| Frédéric Inscrit le : 09/05/2005 |
# Le 22/11/2008 à 19:36
tonguide a dit : [a-z0-9] remplace par [a-zA-Z0-9] Avec l'option i, pas la peine a priori. Par contre je comprends pas trop ta regex, pourquoi tu mets des 0-9 dans tes caractères autorisés alors que justement tu ne veux pas virer les points qui sont entourés de chiffres ? (si j'ai bien compris ton problème en tous cas) Moi je ferais plutôt ça : #([^0-9])\.([^0-9])# De façon à ce que chaque caractère "." qui n'est pas entouré de chiffres soit remplacé par un espace. "Le bois ne rend pas les coups" |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 22/11/2008 à 19:49 tonguide : le problème c'est que le "curseur" du parseur se déplace au fur et à mesure, ça donne : {CURSEUR}Gd.Espace.III.ABS Evo 2.2 dCi115 Expression 2) premier remplacement : Gd Espace{CURSEUR}.III.ABS Evo 2.2 dCi115 Expression 3) le premier point ne peut donc pas correspondre au masque, il passe directement au second : Gd Espace.III ABS{CURSEUR} Evo 2.2 dCi115 Expression En limitant à deux caractères comme j'ai fait, on limite la casse, l'étape 2 devenant : Gd Es{CURSEUR}pace.III.ABS Evo 2.2 dCi115 Expression puis : Gd Espace II{CURSEUR}I.ABS Evo 2.2 dCi115 Expression mais là ça coince à nouveau et on obtient au final : Gd Espace III.ABS Evo 2.2 dCi115 Expression Il faudrait donc lui indiquer de ne pas "déplacer le curseur" pour la deuxième partie de la chaine. Certaines assertions simples telles que "\b" le permettent, mais pour le cas présent je ne sais pas comment le spécifier. Sinon je plussois l'approche de Fred, qui me semble beaucoup plus simple. |
ddpetit
| Damien Inscrit le : 03/05/2006 |
# Le 22/11/2008 à 19:50 En fait dans certains cas, je peux avoir des chiffres (ex: "207.CC 1.6 HDi110 Sport FAP"), ce qui est sur c'est dans le cas où j'ai x.x il faut laisser le point. Et c'est vrai que c'est assez compliqué également. Loccasion.com - Vente de voitures d'occasion - Mandataire Auto |
petitnuage
| Sam Inscrit le : 20/11/2008 |
# Le 25/11/2008 à 18:52 L'expression rationnelle serait donc celle-ci :
pour supprimer le point partout, sauf si on a un caractère de chaque côté du point. Documentation à relire : Lookahead and Lookbehind Zero-Width Assertions Outil pour tester : Regular Expression Test Tool Alors, heureux ? :-D |
Rano
| Jean Inscrit le : 13/04/2005 |
# Le 25/11/2008 à 19:06
petitnuage a dit : pour supprimer le point partout, sauf si on a un caractère de chaque côté du point. ... Alors, heureux ? :-D Ce n'est pas ce qui était demandé |
petitnuage
| Sam Inscrit le : 20/11/2008 |
# Le 26/11/2008 à 00:02
Rano a dit : petitnuage a dit : pour supprimer le point partout, sauf si on a un caractère de chaque côté du point. ... Alors, heureux ? :-D Ce n'est pas ce qui était demandé Ah bon ? Voici le cahier des charges : ddpetit a dit : Je me permets de relancer ce topic, j'ai un souci actuellement pour l'enregistrement de certaines données sur mon site. Certaines personnes placent dans leur logiciel des "." entre chaque mot de modèle. Exemple : Gd.Espace.III.ABS Evo 2.2 dCi115 Expression Gd Espace III ABS Evo 2.2 dCi115 Expression Voici ma requête : $string = preg_replace('#([a-z0-9]{2,})\.([a-z0-9]{2,})#i', '$1 $2', $preg); Résultat généré : Gd Espace.III ABS Evo 2.2 dCi115 Expression Il doit me manquer un tout petit quelque chose ... Or, avec le code fourni ci-dessus, j'atteints le résultat attendu et je corresponds au cahier des charges. Où est mon erreur ? |
Rano
| Jean Inscrit le : 13/04/2005 |
# Le 26/11/2008 à 00:08 Oui, c'est bon, c'est juste "caractère". Mais j'étais pas spécialement bien luné |
Julgates
| Julien Inscrit le : 09/03/2005 |
# Le 26/11/2008 à 00:24
Rano a dit : Oui, c'est bon, c'est juste "caractère". Mais j'étais pas spécialement bien luné Ca c'était pas bien vu je te rassure Pauvre martin ;-) Shopping Time Network - Founder / CTO |
petitnuage
| Sam Inscrit le : 20/11/2008 |
# Le 26/11/2008 à 00:31 Pffff... |
krucial
| Jean Christophe Inscrit le : 09/03/2005 |
# Le 03/06/2015 à 08:15 Salut JC - Mes sites | Affiliation devis travaux | Cotes voitures anciennes |
acti
| Stéphane Inscrit le : 13/11/2005 |
# Le 03/06/2015 à 13:45 Hello JC, Stéphane |
krucial
| Jean Christophe Inscrit le : 09/03/2005 |
# Le 03/06/2015 à 15:08 Ok merci ! Apres, je ne comprends pas bien pourquoi elle merde. Je vais contourner, c'est pas grave. Merci acti ! JC - Mes sites | Affiliation devis travaux | Cotes voitures anciennes |
acti
| Stéphane Inscrit le : 13/11/2005 |
# Le 03/06/2015 à 15:10 Quels sont les cas où tu as des problème JC ? Stéphane |
krucial
| Jean Christophe Inscrit le : 09/03/2005 |
# Le 03/06/2015 à 15:17 Bah, parfois, j'ai un simple texte, genre : Ah c'est super ! :loul: Le :loul: n'est plus transformé en smile. Je ne percute pas. JC - Mes sites | Affiliation devis travaux | Cotes voitures anciennes |
acti
| Stéphane Inscrit le : 13/11/2005 |
# Le 03/06/2015 à 15:22 Et si tu mets un espace avant le premier double point et après le dernier double point du :loul: ça fonctionne non ? Stéphane |
tonguide
| Jeremy Inscrit le : 09/05/2005 |
# Le 03/06/2015 à 15:26 En gros, le fait de rajouter un pipeline | avant chaque fin de parenthèse devrait résoudre le soucis (c'est à dire "ou rien") |
tonguide
| Jeremy Inscrit le : 09/05/2005 |
# Le 03/06/2015 à 15:33 Tiens : https://regex101.com/r/iH7kH0/1 |
Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.
© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 10:03:28 | Généré en 11.68ms | Contacts | Mentions légales |