les expressions rationnelles regexp

mikil

XLDnaute Nouveau
bjr

je suis nouveau sur ce forum je dois recuperer un nombre contenu dans une suite de chaines de caracteres; en fait pour etre plus précis j'ai toute une liste de chaines de carateres et a chaque fois je dois extraire un nombre donné.

Je joins ce fichier pour que ce soit plus claire
 

Pièces jointes

  • Book3.xls
    208 KB · Affichages: 255
  • Book3.xls
    208 KB · Affichages: 275
  • Book3.xls
    208 KB · Affichages: 272

JNP

XLDnaute Barbatruc
Re : les expressions rationnelles regexp

Bonjour Mikil et bienvenue :)
Je joins ce fichier pour que ce soit plus claire
Il est clair qu'il y a de beaux Pattern dans le fichier, mais d'explications que nenni :rolleyes:...
Comme il y a peu de gens sensibilisés à la question, tu auras déjà peu de répondeurs, donc essaye d'être plus que clair sur ce que tu cherches à faire :p...

je pense que l'ideal pour toi est de regarde les posts de l'ami JNP grand specialiste du sujet que je salue au passage:):)
Bises Laetitia :),
J'essayais de décortiquer le fichier, mais comme il doit manquer des bouts (page de référence, modules de classes...), difficile de se faire une idée :eek:...
Bonne suite :cool:
 

mikil

XLDnaute Nouveau
Re : les expressions rationnelles regexp

merci pour la réponse laetitia90 et bjr JP
je vais essayer d'etre claire, dans le fichier que j'ai joint il y a plusieurs onglets et dans chacun d'eux il ya des colonnes et dans chacune de ces colonnes(pas toutes certaines sont vides) il ya une suite de chaine de caractères par exemple prenons l'onglet azou01 la premiere ligne de la premiere colonne c'est écrit "5y5y 728/733 vs 7y1y 182.5 bid nl" et les autres lignes c'est des fois similaire.

Ce que je voudrais faire c'est parcourir les lignes ou il y a le mot vs puis extraire un nombre si je reprends "5y5y 728/733 vs 7y1y 182.5 bid nl"
par exemple on voit clairement le terme vs il faudrait que je puisse extraire le chiffre 182.5
 

JNP

XLDnaute Barbatruc
Re : les expressions rationnelles regexp

Re :),
en esperant etre un peu plus claire
Oui et non :rolleyes:...
Donc on ne s'intéresse bien qu'aux cellules qui contiennent vs entouré de 2 espaces ?
Ensuite, si 5y5y 728/733 vs 7y1y 182.5 bid nl donne 182.5,
3m20y 822/ vs 3m10y /449 donne /449, 449 ou rien du tout ?
trading 6m5y @269 vs 6m10y -577- donne -577-, 577, -577, 577- ou rien du tout ?
Qu'est-ce que donnent :
1y10y@/+100 4040 lock vs 123/138
10y10y @ 830 lock vs +100 /520
6m10y +100 vs 1y10y +100 traded at 70 on 200m ???
Pour pouvoir t'aider, il faut que tu nous donnes un fichier avec en première colonne des exemples (beaucoup d'exemples, et si possible toutes les formes possibles ;)) et en deuxième colonne le résultat attendu :p...
Ce n'est pas la peine de mettre beaucoup de lignes sans vs, une ou 2 suffisent :rolleyes:...
A te lire :cool:
 

mikil

XLDnaute Nouveau
Re : les expressions rationnelles regexp

merci d'avance de ton aide JNP
en fait c'est un peu compliqué, disons pour l'instant que je m'occupe des lignes
10y10y @ 830 lock vs +100 /520 ici la vs est a 830 (entre @ et lock)
en fait pour 5y5y 728/733 vs 7y1y 182.5 bid nl donne 182.5(oublions celui là pour l'instant)
et en fait quand tu vois 10y10y .... vs 1y10y cela là aussi on peut les mettre de coté pour l'instant
parcontre dans le premier onglet azou1 deuxieme colonne tu verras

1y10y@/+100* 4040 lock vs 123/138 par exemple ici c'est 4040 que je veux extraire (7 ieme ligne de la deuxieme colonne)
10y10y @ 830 lock vs +100 /520 ici ce serait 830 (11 ieme ligne de la deuxieme colonne).

en fait les trois suivantes bien qu'ayant le terme vs ne m'interesse pas pour l'instant
6m10y +100 vs 1y10y +100 traded at 70 on 200m
trading 6m5y @269 vs 6m10y -577
5y5y 728/733 vs 7y1y 182.5 bid nl
 

mikil

XLDnaute Nouveau
Re : les expressions rationnelles regexp

vraiment désolé en fait je sais que ce n'est pas evident de m'aider comme cela, le fait est que ces données pour faire simple on les recois d'un intermediaire(une institution pour faire simple) et au sein de la meme institution il peut arriver que differentes personnes m'envoie ces données et selon les perssonnes la syntaxe employee est differente.
Disons que ce sont des produits avec leurs specifications en tout le but premier c'est de reperer les lignes ou apparait le terme vs(mais pas toute quand il y a 6m10y .... vs 10y10y ceux la ne m'interessent pas) et les lignes ou j'ai pas de vs j'aimera juste recuperer un zéro
 

mikil

XLDnaute Nouveau
Re : les expressions rationnelles regexp

1y10y@/+100* 4040 lock vs 123/138 ici 4040

10y10y @ 830 lock vs +100 /520 ici 830

1y10y @/+100: 404 lock vs 124/138 ici 404

10y10y @/-100: 830 vs /520

10y20y P+150 615/660 vs 2755 ici 2755
15y30y P+200 /815 vs 3946 lock ici 3946

10y20y P+150 615/660 vs 2755 ici 2755

10y20y P+200 495/565 vs 2755 ici 2755

10y20y P+150 615/665 vs 2755 ici 2755

5y10y p+50 482/ vs 1350 ici 1350

20y10y 200ws /1425 vs 2155 ici 2155

3y2y P+200 31/ vs 255 ici 255

20y10y P+200 /565 vs 2150 ici 2150

7y2y P+300 /50 vs 348 ici 348

5y15y P+200 /256 vs 1834 ici 1834

10y30y P+75 /1195 vs 3525 ici 3525

10y20y P+200 /535 vs 2720 ici 2720

10y20y P+150 /645 vs 2720 ici 2720


je crois avoir énuméré celle qui m'interessent pour l'instant

et si possible dans toutes les autres lignes avec des vs "bizarres" recuperer la valeur 1

et toutes les autres lignes sans la mention vs récuperer un zero
 

CISCO

XLDnaute Barbatruc
Re : les expressions rationnelles regexp

Bonsoir

En simplifiant un peu, est-ce qu'on peut résumer ta demande à quelque chose du genre :
Lorsque 'il y a vs et lock, afficher le nombre devant lock.
Lorsqu'il y a vs et pas lock, afficher le nombre à la fin ?
(Le dernier exemple que tu viens de rajouter ne passe pas avec ces critères. Grrrrr)

Autrement dit, est-ce que tu pourrais nous donner les critères qui te font choisir tel nombre dans la liste dans tel cas, et tel autre nombre dans tel autre cas ?

@ plus

P.S : Bonsoir JNP
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : les expressions rationnelles regexp

Re :),
Le "pour l'instant" m'inquiète :eek:...
RegExp, c'est quelque chose de réfléchi...
D'après tes exemples, c'est :
si "@", alors chiffres uniquement entre 2 epaces avant "lock vs" ou "vs"
sinon, si "vs" seulement, alors chiffres uniquement entre 2 espaces après "vs"
sinon, rien
Si ça définit bien tous tes cas de figures, ok, je regarde, mais je ne modiefierai pas ensuite :rolleyes:...
Donc pèse bien ta réponse :cool:
Ajout : Salut Cisco :)
 

Discussions similaires

Réponses
4
Affichages
338

Statistiques des forums

Discussions
312 497
Messages
2 088 988
Membres
104 000
dernier inscrit
dinelcia