Identifiez-vous Devenir membre
| Auteur | Message |
|---|---|
|
ddpetit 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 |
|
Bool 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 Google is watching you. |
|
tonguide Inscrit le : 09/05/2005 |
# Le 22/11/2008 à 19:34 AH oui ddpetit, t'as raison. |
|
Fred 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 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 Expression2) premier remplacement : Gd Espace{CURSEUR}.III.ABS Evo 2.2 dCi115 Expression3) le premier point ne peut donc pas correspondre au masque, il passe directement au second : Gd Espace.III ABS{CURSEUR} Evo 2.2 dCi115 ExpressionEn 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 Expressionpuis : Gd Espace II{CURSEUR}I.ABS Evo 2.2 dCi115 Expressionmais 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. Google is watching you. |
|
ddpetit 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 |
|
petitnuage 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 Petit Nuage est une société de services web |
|
Rano 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 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 ? Petit Nuage est une société de services web |
|
Rano 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 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 ;-) Beyoung Interactive |
|
petitnuage Inscrit le : 20/11/2008 |
# Le 26/11/2008 à 00:31 Pffff... Petit Nuage est une société de services web |
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.
© K-network & Beyoung Interactive - Tous droits réservés | CNIL N° 844440 | 24/05/2012 9:32:40
Design by Studcrea | Integration by Paul Leprévost | Généré en 7.22ms | Contacts | Mentions légales