[..] Recherche de caractères
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.
[..] Recherche de caractères
Bonjour,
Tout d'abord, bravo pour ce site qui est une véritable mine d'or.
Je débute sur Autoit et je suis confronté à un problème de recherche textuelle.
En clair, je dispose d'un fichier .txt avec beaucoup de texte et dans ce texte je souhaite récupérer des chaînes de caractères numériques préfixées par "/detail/" et suffixées par "?".
La difficulté réside dans le fait que le nombre de chiffres varie, par exemple
/detail/123? => je veux récupérer 123
/detail/123456? => je veux récupérer 123456
Auriez-vous un conseil ou un topic qui pourrait m'aider?
Merci par avance pour votre aide!
Excellente soirée
Tout d'abord, bravo pour ce site qui est une véritable mine d'or.
Je débute sur Autoit et je suis confronté à un problème de recherche textuelle.
En clair, je dispose d'un fichier .txt avec beaucoup de texte et dans ce texte je souhaite récupérer des chaînes de caractères numériques préfixées par "/detail/" et suffixées par "?".
La difficulté réside dans le fait que le nombre de chiffres varie, par exemple
/detail/123? => je veux récupérer 123
/detail/123456? => je veux récupérer 123456
Auriez-vous un conseil ou un topic qui pourrait m'aider?
Merci par avance pour votre aide!
Excellente soirée
Modifié en dernier par Shinai75 le jeu. 03 déc. 2015 23:04, modifié 2 fois.
Re: [Recherche] : aide sur une recherche de caractères
Première page à lire : http://www.autoitscript.fr/forum/viewto ... f=35&t=595
Ce sont les règles de présentation d'un message. Comme tu pourras le constater, le titre de ton message n'est pas vraiment conforme à cette règle.
Sinon, il faut que tu regardes du côté des fonctions StringMid / StringInStr qui devraient te permettre de faire ce que tu veux.
Ce sont les règles de présentation d'un message. Comme tu pourras le constater, le titre de ton message n'est pas vraiment conforme à cette règle.
Sinon, il faut que tu regardes du côté des fonctions StringMid / StringInStr qui devraient te permettre de faire ce que tu veux.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [..] Aide sur une recherche de caractères
Oups, je suis désolé, je viens de corriger
Merci pour votre réactivité et pour votre aide, je regarde l'aide en ce sens
Merci pour votre réactivité et pour votre aide, je regarde l'aide en ce sens
- 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: [..] Recherche de caractères
Tu peux faire comme ça :
Code : Tout sélectionner
#include <Array.au3>
Local $s = _
"baratin" & @CRLF & _
"/detail/123 => rien à récupérer car pas de ? à la fin" & @CRLF & _
"baratin123" & @CRLF & _
"/detail/123? => peux-tu récupérer 123?" & @CRLF & _
"baratin456" & @CRLF & _
"/detail/123456? => oui, ici tu vas récupérer 123456" & @CRLF & _
"baratin789" & @CRLF
Local $a = StringRegExp($s, "/detail/(\d+)\?", 3)
_ArrayDisplay($a)La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Recherche de caractères
Le RegExp qui tue
Note qu'avec le texte de l'exemple de jchd _StringBetween (solution possible) n'est pas adapté
$a = _StringBetween($s, "/detail/", "?") => erreur
Note qu'avec le texte de l'exemple de jchd _StringBetween (solution possible) n'est pas adapté
$a = _StringBetween($s, "/detail/", "?") => erreur
" 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: [..] Recherche de caractères
Excellent, merci beaucoup !
je patinais avec un debut de code pas terrible :
StringRegExp('texte', '(?i)detail/(.*)?', $STR_REGEXPARRAYGLOBALMATCH)
merci, merci
je patinais avec un debut de code pas terrible :
StringRegExp('texte', '(?i)detail/(.*)?', $STR_REGEXPARRAYGLOBALMATCH)
merci, merci
- orax
- Modérateur

- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Recherche de caractères
Il fallait ajouter un \ pour échapper le ?car, écrit comme ça, ? ne signifie pas le caractère "?" mais plutôt "0 ou 1 fois".
Code : Tout sélectionner
(?i)detail/(.*)[b]\[/b]?De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Recherche de caractères
Pas seulement... "(.*)" est 'greedy' donc ça va ramasser le max de caractères non-newline jusqu'au dernier "?" présent sur chaque ligne, et de plus le point ne permet pas de sélectionner juste les chiffres
" 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 )

