[..] Avoir tous les résultats avec StringRegExp
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.
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
oui mais comme à priori mon script utilise une ligne que l'utilisateur choisit (j'avais oublié de le préciser), il faut que ça marche tout le temps, même avec des symboles improbables qui ne sont pas impossibles.
- sylvanie
- Niveau 11
- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
c'est par ce que j'ai changé le message d'origine parTlem a écrit :J'ai pas trop compris la remarque de Sylvanie, car ce pattern [^,"\s]+|("[^"]*") crée bien le tableau comme le souhaite tolf :et non le résultat présenté par Sylvanie.Code : Tout sélectionner
[0] salut [1] "bonjour, comment allez vous ?" [2] "moi, je vais bien" [3] #00ffff [4] 354
'salut tout le monde,"bonjour, comment allez vous ?","moi, je vais bien",#00ffff,354'
pour illustrer le fait que si on a plusieurs mots séparés par une space aveant de renconter une "," alors on a un découpage mot à mot.
car [^,"\s]+ peut être vu comme un stringsplit qui agirait à la fois sur les guillemet ' " ' les ' , ' et les espaces (retours tab...)
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
- moutelous
- Niveau 6
- Messages : 229
- Enregistré le : sam. 09 févr. 2008 19:51
- Localisation : Rennes
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
Euh .... ça veux dire quoi cette petite phrase ?
tolf a écrit :oui mais comme à priori mon script utilise une ligne que l'utilisateur choisit (j'avais oublié de le préciser), il faut que ça marche tout le temps, même avec des symboles improbables qui ne sont pas impossibles.
A+
- Tlem
- Site Admin
- Messages : 11793
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
Désolé Sylvanie, mais je ne comprend toujours pas.
J'ai pris la chaîne dans tous les sens, je lui ais rajouté des espaces avant, après, avant et après les différentes virgules et guillemets sans obtenir le 'bug' dont tu parle.
Donne nous un exemple de chaîne qui est sensé posé problème s'il te plaît pour que je test ça ...
J'ai pris la chaîne dans tous les sens, je lui ais rajouté des espaces avant, après, avant et après les différentes virgules et guillemets sans obtenir le 'bug' dont tu parle.

Donne nous un exemple de chaîne qui est sensé posé problème s'il te plaît pour que je test ça ...
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é".
- moutelous
- Niveau 6
- Messages : 229
- Enregistré le : sam. 09 févr. 2008 19:51
- Localisation : Rennes
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
Bonjour
@Tlem :
Presque parfait .... il reste un petit défaut minime (mise à part que je n'ai pas pris en compte tous les caractères spéciaux ... )
A+
@Tlem :
Sylvanie a simplement ajouté des mots et espaces après le premier salut et avant la virgule ...Tlem a écrit :Désolé Sylvanie, mais je ne comprend toujours pas.
J'ai pris la chaîne dans tous les sens, je lui ais rajouté des espaces avant, après, avant et après les différentes virgules et guillemets sans obtenir le 'bug' dont tu parle.
Mais bon ... on fini toujours par trouver une solution :sylvanie a écrit :c'est par ce que j'ai changé le message d'origine par
'salut tout le monde,"bonjour, comment allez vous ?","moi, je vais bien",#00ffff,354'
pour illustrer le fait que si on a plusieurs mots séparés par une space aveant de renconter une "," alors on a un découpage mot à mot.
Code : Tout sélectionner
[^,"]+\b|("[^"]*")|[%@^\`|{#~}&%]+
A+
A+
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
je répondais à la remarque de Tlem :moutelous a écrit :Euh .... ça veux dire quoi cette petite phrase ?
tolf a écrit :oui mais comme à priori mon script utilise une ligne que l'utilisateur choisit (j'avais oublié de le préciser), il faut que ça marche tout le temps, même avec des symboles improbables qui ne sont pas impossibles.
et donc je disais que j'avais oublié de préciser que l'utilisateur (différent du programmateur) choisissait la chaîne de caractères qui est ensuite décomposée par mon script.Tlem a écrit :@tolf vous pouvez vous simplifier la vie en utilisant comme séparateur une suite de symboles improbable (genre ~#~) et modifier la fonction StringSplit en mettant le flag à 1
- moutelous
- Niveau 6
- Messages : 229
- Enregistré le : sam. 09 févr. 2008 19:51
- Localisation : Rennes
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
Bonjour,
Ok Tolf je n'avais pas suivi ..... et donc ma proposition de Regex juste au dessus ne conviendra pas à cause de l'insertion de guillemet dans une phrase entre virgule .....
A suivre donc ...
Ok Tolf je n'avais pas suivi ..... et donc
Code : Tout sélectionner
salut,"bonjour, comment allez vous ?" mots hors citation "ceci est la suite de bonjour,...","moi, je vais bien",#00ffff,354,\v marque une virgule de séparation, ce "|" ne sert pas de séparation
A suivre donc ...
A+
- sylvanie
- Niveau 11
- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
Bonsoir,
je suis trops fatigué ce soir pour creuser ce sujet, qui pourtant est passionnant ...
c'est juste pour Tlem, si l'explication de moutelous ne suffisait pas :
prends ce morceau de code :
on observe bien
[0]|salut
[1]|tout
[2]|le
[3]|monde
[4]|"bonjour, comment allez vous ?"
[5]|"moi, je vais bien"
[6]|#00ffff
[7]|354
Alors qu'à la base on cherche un split par virgule :
[0]|salut tout le monde
[1]|"bonjour, comment allez vous ?"
[2]|"moi, je vais bien"
[3]|#00ffff
[4]|354
Bon et bien moi, je ne vais pas faire de vieux os ce soir ... bonne nuit ZZZZZZ
je suis trops fatigué ce soir pour creuser ce sujet, qui pourtant est passionnant ...
c'est juste pour Tlem, si l'explication de moutelous ne suffisait pas :
prends ce morceau de code :
► Afficher le texte
[0]|salut
[1]|tout
[2]|le
[3]|monde
[4]|"bonjour, comment allez vous ?"
[5]|"moi, je vais bien"
[6]|#00ffff
[7]|354
Alors qu'à la base on cherche un split par virgule :
[0]|salut tout le monde
[1]|"bonjour, comment allez vous ?"
[2]|"moi, je vais bien"
[3]|#00ffff
[4]|354
Bon et bien moi, je ne vais pas faire de vieux os ce soir ... bonne nuit ZZZZZZ
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
- moutelous
- Niveau 6
- Messages : 229
- Enregistré le : sam. 09 févr. 2008 19:51
- Localisation : Rennes
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
Bonsoir,
Concernant l'exemple donné par Sylvanie le code suivant est OK ...
Par contre Tolf a apporté une nouvelle contrainte (phrase entre virgule incluant mot entre guillemet) et donc mon Regex ne match plus ...sniff
Bonne soirée et A+
Concernant l'exemple donné par Sylvanie le code suivant est OK ...
► Afficher le texte
► Afficher le texte
A+
- Tlem
- Site Admin
- Messages : 11793
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
En tout cas mon code avec le double séparateur fonctionne à merveille.
C'est parfois moins prise de tête quand même.

C'est parfois moins prise de tête quand même.

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é".
- moutelous
- Niveau 6
- Messages : 229
- Enregistré le : sam. 09 févr. 2008 19:51
- Localisation : Rennes
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
Bonjour,
Il est vrai, Monsieur Tlem, que votre solution fonctionne à merveille ,chapeau bas .....
Mais j'adore me prendre la tête .....
A+
Il est vrai, Monsieur Tlem, que votre solution fonctionne à merveille ,chapeau bas .....
Mais j'adore me prendre la tête .....

A+
A+
- Tlem
- Site Admin
- Messages : 11793
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
Rhoooo le moqueur ...moutelous a écrit :Il est vrai, Monsieur Tlem, que votre solution fonctionne à merveille ,chapeau bas ....

Idem, quand je connais.moutelous a écrit :Mais j'adore me prendre la tête .....
Mais la les expressions régulières, ... je jette l'éponge.

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é".
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Avoir tous les résultats avec StringRegExp
a priori, je pensais l'avoir dit dès le départ mais mon exemple n'étais alors pas assez général (vous m'excuserezmoutelous a écrit :Par contre Tolf a apporté une nouvelle contrainte (phrase entre virgule incluant mot entre guillemet) et donc mon Regex ne match plus ...sniff

D'ailleurs, mon premier pattern essayait de bien prendre en compte les guillemets au sein d'une phrase : [^,"]*("[^"]*")*[^,"]* : ce qui est en rouge marque le début de la phrase et ce qui est en bleu la fin.
J'avais d'ailleurs fait une petite erreur puisque les guillemets peuvent s'ouvrir et se refermer plusieurs fois, ce qui donnerait (si bien sûr il n'y avait pas le bug de la chaîne vide
