SupaLou
Messages postés74Date d'inscriptionsamedi 10 janvier 2004StatutMembreDernière intervention19 septembre 2006
-
1 août 2006 à 10:20
heineken889
Messages postés1Date d'inscriptiondimanche 30 mars 2008StatutMembreDernière intervention30 mars 2008
-
30 mars 2008 à 15:16
Bonjour tout le monde.
Est-il possible dans une chaine de caractères d'extraire un ensemble de caractère se situant entre deux caractères connus?? Humhum
Un exemple sera plus clair ;-)
J'ai ces trois chaines là:
C: 1,115 Go d'espace libre sur 7,798 Go
D: 1,21 Go d'espace libre sur 16,952 Go
E: 9,371 Go d'espace libre sur 16,952 Go
et je veut extraire
1,115 pour la premiere
1,21 pour la deuxième
9,371 pour la troisième
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 1 août 2006 à 10:47
Salut,
Si tu choisis la solution des expressions régulières proposée ci-dessus, voilà ce que ça donne :
string txt =
"C: 1,115 Go d'espace libre sur 7,798 Go";
string exp =
@"\d+(,\d+)?";
string outV = System.Text.RegularExpressions.
Regex.Match(txt,exp).Value;
Ca récupère uniquement la première chaîne (1,115 et pas 7,798).
Si la deuxième partie t'intéresse aussi, faut légèrement modifier le code...
gcorbineau
Messages postés143Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention25 octobre 2006 1 août 2006 à 10:29
Tu fais une recherche sur la premiere chaine connu tu récupere la position et la longueur de celle ci, tu fais pareil pour la deuxieme et tu récuperes ce qu'il a entre les deux positions trouvée.
Dans la classe String tu devrai trouvé tous ce que tu as besoin.
Tu peux aussi le faire avec une expression réguliere qui retire tous les caracteres sauf la virugule.
SupaLou
Messages postés74Date d'inscriptionsamedi 10 janvier 2004StatutMembreDernière intervention19 septembre 2006 1 août 2006 à 12:02
Merci a tous les deux.
La solution de bidou à l'air d'être exactement ce que je cherchais a faire. Je vais donc l'essayer.
En revanche je ne suis pas très callé en "expressions régulière". Que signifie exactement @"\d+(,\d+)?
ca fait un peu charabia quand meme
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 1 août 2006 à 12:09
Ca veut dire qu'on cherche une valeur numérique qui revient 1 fois ou plus [\d+] suivit d'éventuellement une virgule avec une valeur numérique qui revient 1 fois ou plus (le éventuellement est du au '?')
<hr size="2" />VC# forever
Vous n’avez pas trouvé la réponse que vous recherchez ?
heineken889
Messages postés1Date d'inscriptiondimanche 30 mars 2008StatutMembreDernière intervention30 mars 2008 30 mars 2008 à 15:16
bonjours à tous
tu as dit :
" string outV=System.Text.RegularExpressions.Ragex.Match(txt,exp).Value;
si la deuxième partie t'intéresse aussi , faut légèrement modifier le code ... "
mais c'est quelle modification qu'il faut faire, car j'ai beau chercher et je la trouve pas.
mon problème est casi identique sauf que c'est pas la première valeur qu'il me faut mais plutot la 5ème
voici un extrait du contenu de mon string et c'est la valeur souligné qu'il me faut :
S ( VA) = 0.0
Q ( VAR) = ----
PF = 1.00
DFF = ----
A RMS (A) = 0.63
V RMS (A) = 0.00
A DC (A) = + 0.61
V DC (V) = - 0.01
et plein d'autre valeur