danny3D
Messages postés6Date d'inscriptionlundi 30 juin 2008StatutMembreDernière intervention30 novembre 2008
-
17 juil. 2008 à 19:22
danny3D
Messages postés6Date d'inscriptionlundi 30 juin 2008StatutMembreDernière intervention30 novembre 2008
-
21 juil. 2008 à 15:27
salut je suis dans un projet où je veut extraire toutes les chaines entre les caractères > et <
j'utilise l'expression >.*< mais l'extraction ne s'éffectue qu'en considérant le premier > et le dernier < sans tenir compte des < et > qui sont entre les deux extreme:
exemple:
en fournissant : <1>x<1>y<2>z<h1>a<2>b<3>c<3>
il me retourne : >x<1>y<2>z<h1>a<2>b<3>c<
au lieu de : x, y, z,a,b,c
je ne sais pas, peut etre que quelqu'un peut me corriger par rapport à la conception de l'expression....
merci d'avance
jiidou
Messages postés48Date d'inscriptionvendredi 31 août 2007StatutMembreDernière intervention12 février 2009 17 juil. 2008 à 20:02
tu dois proceder a une recursivité;
D'apres l'exemple, le programme a retourné seulement le resultat de l'operation appliquée aux extrimités
ie : <1>x<1>y<2>z<h1>a<2>b<3>c<3>
De plus tu a inversé apparemment les deux signes d'inégalité
cs_niky
Messages postés168Date d'inscriptionjeudi 28 juin 2001StatutMembreDernière intervention18 octobre 20087 17 juil. 2008 à 20:32
Je dirais plutôt que l'analyseur traite correctement l'expression régulière. La règle est toujours de prendre la chaîne la plus grande possible qui match l'expression.
Si tu veux extraire x,y,z,a,b,c, il te faut mettre l'expression ">[^<]*<"
Du coup, il va te rechercher tout ce qu'il y a entre > et < et en s'arrêtant au premier < puisque tu lui interdis de le matcher à cet endroit.