[R] Recupérer un nombre dans une chaine
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
touslesmatins
- Niveau 6

- Messages : 211
- Enregistré le : dim. 15 févr. 2009 01:08
- Status : Hors ligne
[R] Recupérer un nombre dans une chaine
Bonjour,
Je souhaite récuperer un nombre dans une chaine et je bloque.
Voici la chaine : "gtsystsy_stmfx_dssd_45_bb.pdf" ou encore "ggggstsy_kllfx_mpsd_545_bb.pdf"
La question comment puis je recuperer le 45 ou dans le 2e exemple le 545
Merci pour votre aide
Je souhaite récuperer un nombre dans une chaine et je bloque.
Voici la chaine : "gtsystsy_stmfx_dssd_45_bb.pdf" ou encore "ggggstsy_kllfx_mpsd_545_bb.pdf"
La question comment puis je recuperer le 45 ou dans le 2e exemple le 545
Merci pour votre aide
Modifié en dernier par touslesmatins le lun. 09 déc. 2013 23:16, modifié 1 fois.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Recupérer un nombre dans une chaine
"\d+" avec StringRegExp(). ^^
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Recupérer un nombre dans une chaine
Pour exposer la réponse de Tlem :
Attention, il faut tout de même penser à tous les cas de figure. Par exemple, est-ce qu'il est possible de rencontrer un chaîne du style gtsystsy09_stmfx_dssd_45_bb.pdf ? Dans ce cas, il faudra s'y prendre autrement (utiliser StringRegExp pour généré un tableau).
Code : Tout sélectionner
$chaine = "gtsystsy_stmfx_dssd_45_bb.pdf"
$num = StringRegExpReplace($chaine, "[^\d]", "") ; Remplace [b]tout ce qui n'est pas un chiffre[/b] par [b]rien[/b]
MsgBox(0, "", $num)Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Recupérer un nombre dans une chaine
Heu ... 
Code : Tout sélectionner
$chaine = "gtsystsy_09_stmfx_dssd_123_45_bb.pdf"
$num = StringRegExpReplace($chaine, '.+_(\d+).+', "$1") ; récupère le [b]dernier [/b]nombre précédé par un underscore
MsgBox(0, "", $num)" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [..] Recupérer un nombre dans une chaine
@mikell : la supposition que je faisais voulait simplement mettre en évidence que si on rencontre plusieurs suites de chiffres dans le nom du fichier, on ne sait pas ce qu'il faut récupérer...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Recupérer un nombre dans une chaine
Ta supposition est totalement justifiée, reste dans ce cas que : ou bien la position du nombre à récupérer est constante dans le nom de fichier auquel cas un regexpreplace suffira, ou elle ne l'est pas et là même un tableau ne servira pas à grand'chose 
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
-
touslesmatins
- Niveau 6

- Messages : 211
- Enregistré le : dim. 15 févr. 2009 01:08
- Status : Hors ligne
Re: [..] Recupérer un nombre dans une chaine
Merci je regarde tout ça...
-
touslesmatins
- Niveau 6

- Messages : 211
- Enregistré le : dim. 15 févr. 2009 01:08
- Status : Hors ligne
Re: [R] Recupérer un nombre dans une chaine
Un grand merci Tlem & Jguinch, c'est tout simplement parfait.

Re: [R] Recupérer un nombre dans une chaine
Bonjour,
Je lis, plus haut : .+_(\d+).+', "$1"
Connaissez-vous un site ou une page qui explique ce langage cabalistique ? Il m'a l'air rudement efficace dans sa concision...
Je lis, plus haut : .+_(\d+).+', "$1"
Connaissez-vous un site ou une page qui explique ce langage cabalistique ? Il m'a l'air rudement efficace dans sa concision...
- TT22
- Membre émérite

- Messages : 1566
- Enregistré le : lun. 18 avr. 2011 15:21
- Localisation : La Quatrième Dimension
- Status : Hors ligne
Re: [R] Recupérer un nombre dans une chaine
Oui, il y a ceci : http://www.autoitscript.fr/autoit3/docs ... RegExp.htm ou ceci : http://www.autoitscript.fr/autoit3/docs ... regexp.htm
Cordialement,
TT22
TT22
Re: [R] Recupérer un nombre dans une chaine
Merci,
Ca fait un peu peur au premier abord... Voilà de quoi s'occuper les longs jours d'hiver !
Ca fait un peu peur au premier abord... Voilà de quoi s'occuper les longs jours d'hiver !
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] Recupérer un nombre dans une chaine
Pour un mode d'emploi détaillé :
https://dl.dropboxusercontent.com/u/264 ... RegExp.htm
https://dl.dropboxusercontent.com/u/264 ... RegExp.htm
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [R] Recupérer un nombre dans une chaine
... et sans oublié le petit tuto de mikell 
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [R] Recupérer un nombre dans une chaine
Pour les anglophones, une vidéo de présentation par une spécialiste du web.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Recupérer un nombre dans une chaine
Et pour les Anglophobe :
- http://www.youtube.com/results?search_q ... +reguliere
- http://www.dailymotion.com/fr/relevance ... +reguliere
- http://www.youtube.com/results?search_q ... +reguliere
- http://www.dailymotion.com/fr/relevance ... +reguliere
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".


