[resolu] - Parse un string
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
[resolu] - Parse un string
J'ai un string et je souhaite récupérer uniquement ce dont j'ai besoin entre les balises.
exemple :
string = <blop>texte</blop>...
Si vous pouvez éclairer ma lanterne
exemple :
string = <blop>texte</blop>...
Si vous pouvez éclairer ma lanterne
Dernière modification par doudouvs le lun. 11/mars/2013 18:28, modifié 2 fois.
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Parse un string
Procédure de G-Rom avec utilisation des RegEx
Il me semble que j'avais autre chose. Si je retrouve je poste 
Code : Tout sélectionner
Procedure.s ExtractFromTag(Text.s, open.s, close.s)
PosA = FindString(Text,open,1) + Len(open)
PosB = FindString(Text,close,2)
Out$ = Mid(Text,PosA,PosB-PosA)
ProcedureReturn Out$
EndProcedure
string$ = "<blop>Glop</blop> et <blop>Pas Glop</blop>"
;-Extraction
exp = CreateRegularExpression(#PB_Any, "<blop>([^<]*)</blop>")
Dim Strong$(0)
StrongFound = ExtractRegularExpression(exp,string$, Strong$())
FreeRegularExpression(exp)
;Resultat
For k = 0 To StrongFound-1
Debug ExtractFromTag(Strong$(k),"<blop>","</blop>")
Next

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Parse un string
Salut, je sais pas si tu as beaucoup d'expérience en prog mais voici une solution universelle utilisée quasiment systématiquement de nos jours.
http://www.purebasic.com/documentation/ ... index.html
Je te cache pas que si tu en as jamais entendu parlé, les premières dix minutes ça va piquer un peu, mais il y a moyen de faire rapidement de petits tests. En quelques heures ça devrait être géré, ensuite libre à toi de d'aller concurrencer google sur son propre terrain.
Tiens-nous au courant.
http://www.purebasic.com/documentation/ ... index.html
Je te cache pas que si tu en as jamais entendu parlé, les premières dix minutes ça va piquer un peu, mais il y a moyen de faire rapidement de petits tests. En quelques heures ça devrait être géré, ensuite libre à toi de d'aller concurrencer google sur son propre terrain.
Tiens-nous au courant.
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: Parse un string
ohh des des expressions régulières cool
Je suis conquis, je maîtrise quelques languages de programmation, les PCRE ne me pose pas de problème.
Concurrencer GG non je pense pas. Par contre j'ai déjà fait un moteur de recherche un peux plus rapide...
En faite je suis entrain de faire un soft de sauvegarde distant, je test toutes les étapes avant de coder le soft final.
Merci à vous deux
Je suis conquis, je maîtrise quelques languages de programmation, les PCRE ne me pose pas de problème.
Concurrencer GG non je pense pas. Par contre j'ai déjà fait un moteur de recherche un peux plus rapide...
En faite je suis entrain de faire un soft de sauvegarde distant, je test toutes les étapes avant de coder le soft final.
Merci à vous deux
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Parse un string
Toujours avec des expressions régulière
On utilise la classe alphanumérique. C'est pas mal mais les balise foireuses passe aussi.
Code : Tout sélectionner
String$ = "<plop>texte</plop>"
exp=CreateRegularExpression(#PB_Any,"(<[[:alnum:]]*>)|(</[[:alnum:]]*>)")
Debug ReplaceRegularExpression(exp, String$,"")
FreeRegularExpression(exp)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: Parse un string
Code : Tout sélectionner
exp = CreateRegularExpression(#PB_Any, "<blop>(.*)</blop>")
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Parse un string
Elle fonctionne ta regex ?doudouvs a écrit :exp = CreateRegularExpression(#PB_Any, "<blop>(.*)</blop>")
En reprenant ma précédente solution (Pas très juste mais suffisant)
Code : Tout sélectionner
n$ = "<blop>mon texte</blop>"
exp=CreateRegularExpression(#PB_Any,"<blop>|</blop>")
Debug ReplaceRegularExpression(exp,n$,"")
FreeRegularExpression(exp)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: Parse un string
Oui (.*) veux dire tout
Dans Debug j'ai bien Glop
Code : Tout sélectionner
string$ = "<blop>Glop</blop>"
exp = CreateRegularExpression(#PB_Any, "<blop>(.*)</blop>")
Dim Strong$(0)
StrongFound = ExtractRegularExpression(exp,string$, Strong$())
FreeRegularExpression(exp)
For k = 0 To StrongFound-1
Debug ExtractFromTag(Strong$(k),"<blop>","</blop>")
Next
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Parse un string
Je n'ai pas compris tout de suite que tu avais repris la première solution basée sur le code de G-Rom.doudouvs a écrit :Dans Debug j'ai bien Glop
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Parse un string
Salut,
Au cas ou tu ais loupé le lien, toujours bon à consulter
http://www.purebasic.fr/french/viewtopi ... 21&t=11395
Quelques exemples de regex avec PB.
Au cas ou tu ais loupé le lien, toujours bon à consulter
http://www.purebasic.fr/french/viewtopi ... 21&t=11395
Quelques exemples de regex avec PB.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels