Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1156 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [java] Regex : je ne m'en sors pas :(

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[java] Regex : je ne m'en sors pas :(

n°735158
perchut2
Hell, it's about time...
Posté le 23-05-2004 à 15:41:14  profilanswer
 

je cherche a parser un header de mail, soit :
 

Return-Path: <bibi.bubulle@free.fr>
Delivered-To: online.fr-perchut2@free.fr
blabla...


 
 
je voudrais recuperer par exemple l'adresse qu'il y a dans le return path, donc :
 

Code :
  1. Pattern return_pattern = Pattern.compile("Return-Path:.<(.*@.*)>" );
  2. Matcher return_matcher = return_pattern.matcher("Return-Path: <bibi.bubulle@free.fr>" );
  3. System.out.println("l'adresse de retour est : "+return_matcher.group());


 
et je me mange invariablement  

Citation :


java.lang.IllegalStateException: No match found


 
j'ai essayé toutes les combinaisons possibles, j'ai du oublier un truc...  
please help  [:sisicaivrai]

mood
Publicité
Posté le 23-05-2004 à 15:41:14  profilanswer
 

n°735177
perchut2
Hell, it's about time...
Posté le 23-05-2004 à 16:24:59  profilanswer
 

doit vraiment y avoir un gros pb :
 
j'ai repris l'exemple de la javadoc :
 

Citation :

Current REGEX is: \bdog\b
Current INPUT is: The dog plays in the yard.
I found the text "dog" starting at index 4 and ending at index 7.


 
alors si j'ecris ca :
 
 

Code :
  1. // on declare le pattern
  2.  Pattern return_pattern = Pattern.compile("\bdog\b" );
  3.  // on declare le matcher, avec en entree, le header complet
  4.  Matcher return_matcher = return_pattern.matcher("the dog plays in the yard" );
  5.  System.out.println("l'adresse de retour est : "+return_matcher.group());


 
et je me mange : java.lang.IllegalStateException: No match found
  [:ciler]

n°735238
darklord
You're welcome
Posté le 23-05-2004 à 17:48:06  profilanswer
 

IDEA + le plugin regex roxxor :o

n°735301
schnapsman​n
Zaford Beeblefect
Posté le 23-05-2004 à 19:55:07  profilanswer
 

DarkLord a écrit :

IDEA + le plugin regex roxxor :o


merci de lui envoiyer ta clef d'enregistrement par MP [:ojap]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°735307
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 23-05-2004 à 20:05:45  profilanswer
 

T'es au courant que les \ faut les escaper dans les chaînes de caractères ? :o
Donc ton pattern, c'est "\\bdog\\b"
Sinon, merci de suivre les conventions de codage Java, au moins pour tes variables (les _, argl). Vala [:dawa]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°735515
perchut2
Hell, it's about time...
Posté le 24-05-2004 à 04:06:00  profilanswer
 

Taiche a écrit :

T'es au courant que les \ faut les escaper dans les chaînes de caractères ? :o
Donc ton pattern, c'est "\\bdog\\b"
Sinon, merci de suivre les conventions de codage Java, au moins pour tes variables (les _, argl). Vala [:dawa]


 
c'est peut etre pour ca [:meganne]...
 
qu'est ce qu'elles ont mes conventions ? :o
classe : MaClasse
fonction maFonction ?
 
faut faire un truc special pour les variables :??:

n°735542
benou
Posté le 24-05-2004 à 09:09:08  profilanswer
 

Pattern return_pattern returnPattern

n°735663
gfive
Posté le 24-05-2004 à 10:32:47  profilanswer
 

Perchut2 a écrit :


fonction maFonction ?


 
methode maMethode, plutôt.

n°735913
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 24-05-2004 à 12:51:16  profilanswer
 

Perchut2 a écrit :


qu'est ce qu'elles ont mes conventions ? :o
classe : MaClasse
fonction maFonction ?
 
faut faire un truc special pour les variables :??:


Ouais, maVariable et pas ma_variable :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°735923
the real m​oins moins
Posté le 24-05-2004 à 12:59:30  profilanswer
 

faudra quand meme qu'on m'explique l'interet des regex pour une connerie comme ça [:meganne]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 24-05-2004 à 12:59:30  profilanswer
 

n°735926
nraynaud
lol
Posté le 24-05-2004 à 13:00:40  profilanswer
 

the real moins moins a écrit :

faudra quand meme qu'on m'explique l'interet des regex pour une connerie comme ça [:meganne]

être à la mode et donner raison aux "java sapu sarame" ?


---------------
trainoo.com, c'est fini
n°735930
the real m​oins moins
Posté le 24-05-2004 à 13:02:16  profilanswer
 

ha, tiens, nraynaud! je me disais aussi.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°735931
gfive
Posté le 24-05-2004 à 13:02:26  profilanswer
 

Taiche a écrit :

T'es au courant que les \ faut les escaper dans les chaînes de caractères ? :o
Donc ton pattern, c'est "\\bdog\\b"


 
N'importe nawak :  
 
\b, c'est une coupure de mot, justement.
 
Avec \bdog\b, il va chercher le mot 'dog' -> ne pas reconnaître doggy, par exemple.
 
Avec \\bdog\\b, il va reconnaître "\bdog\`b" : le premier \ escape le second, et donc "\b" perd son méta-sens => le 'b' est reconnu tel quel.
 

n°735936
the real m​oins moins
Posté le 24-05-2004 à 13:03:27  profilanswer
 

euh non.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°735937
gfive
Posté le 24-05-2004 à 13:04:00  profilanswer
 

nraynaud a écrit :

être à la mode et donner raison aux "java sapu sarame" ?


non, non, mais l'autre solution, c'était d'envoyer un mail à l'adresse avec Javamail, et d'attendre le mail delivery failure...Et c'est long, alors voila... :D

n°735940
benou
Posté le 24-05-2004 à 13:05:15  profilanswer
 


+1 avec le non de --


---------------
ma vie, mon oeuvre - HomePlayer
n°735942
nraynaud
lol
Posté le 24-05-2004 à 13:05:36  profilanswer
 

tiens, en plus c'est faux ce qu'il est en train de faire.


---------------
trainoo.com, c'est fini
n°735944
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 24-05-2004 à 13:07:01  profilanswer
 

gfive a écrit :

N'importe nawak :  
 
\b, c'est une coupure de mot, justement.


Rendors-toi :D
 
Sérieusement, je sais ce que tu veux dire mais là non, spa comme ça que ça marche. Le gars qui veut détecter une tabulation dans une chaîne, il emploiera comme Pattern "\\t" et non "\t" qui sera lui interprété par le compilo comme le caractère de tabulation et n'aura donc aucun effet au runtime. Extrait de la javadoc de Pattern :

Citation :

The string literal "\(hello\)" is illegal and leads to a compile-time error; in order to match the string (hello) the string literal "\\(hello\\)"  must be used.


 
Vala.
 
 
EDIT : ah ba tiens, toujours dans la javadoc, pile poil c'qui nous intéresse et une ligne avant mon quote précédent :

Citation :

The string literal "\b", for example, matches a single backspace character when interpreted as a regular expression, while "\\b" matches a word boundary.


Message édité par Taiche le 24-05-2004 à 13:14:38

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°735957
gfive
Posté le 24-05-2004 à 13:14:20  profilanswer
 

Taiche a écrit :

Rendors-toi :D
Sérieusement, je sais ce que tu veux dire mais là non, spa comme ça que ça marche.


 
Je suis perplexe....mais effectivement, je me suis sans doute mis dedans sur ce coup là.
Sinon, pour le problème de Perchut, un RTFM suffit :  

Code :
  1. group
  2. public String group()
  3.     Returns the input subsequence matched by the previous match.


 
donc, si tu as pas appellé 'matches', ben 'group' ne renverra rien, si j'ai tout bien compris (mais bon, on sait jamais.. :D)

n°735960
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 24-05-2004 à 13:15:28  profilanswer
 

gfive a écrit :

Je suis perplexe....mais effectivement, je me suis sans doute mis dedans sur ce coup là.


Ba vois mon EDIT, ça flinguera tous tes soupçons :o
Perso j'y ai eu droit donc j'fais gaffe [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°735975
nraynaud
lol
Posté le 24-05-2004 à 13:22:52  profilanswer
 

je suis le seul à n'avoir jamais utilisé les regexes en java ici ?
 
et tout le mond s'en fout que ce garçon est en train de se planter dans ce qu'il veut faire correspondre ?


---------------
trainoo.com, c'est fini
n°735977
gfive
Posté le 24-05-2004 à 13:23:24  profilanswer
 

C'est quand même un peu capillotracté, je trouve! :) Enfin, sinon, group() renvoie la chaîne complète. Pour avoir le premier 'groupe', après avoir appellé 'matches', il faut appeller "group(1)", ce qui me plonge dans des abîmes d'inconpréhension, mais ça doit être parce que je fais du Perl en ce moment.

n°735981
benou
Posté le 24-05-2004 à 13:24:11  profilanswer
 

nraynaud a écrit :

je suis le seul à n'avoir jamais utilisé les regexes en java ici ?


moi j'ai pas encore utilisé celles du jdk1.4. Par contre j'ai déjà utilisé regexp et oro (de jakarta), mais pas pour ce genre de besoin  :sweat:


---------------
ma vie, mon oeuvre - HomePlayer
n°735983
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 24-05-2004 à 13:26:39  profilanswer
 

nraynaud a écrit :

je suis le seul à n'avoir jamais utilisé les regexes en java ici ?


J'en sais rien et à la limite j'm'en fous ; perso j'ai dû le faire 2-3 fois parce que ça me semblait plus facile que d'y aller à grands coups de indexOf pénibles. Maintenat,  "c'est ton choix" :o

nraynaud a écrit :


et tout le mond s'en fout que ce garçon est en train de se planter dans ce qu'il veut faire correspondre ?


Bin vas-y, dis-y comment faire et pis c'est tout. J'le fais pas passke ça me saoûle de parser de la regexp mais si t'as envie te gêne pas :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°735987
gfive
Posté le 24-05-2004 à 13:28:48  profilanswer
 

Taiche a écrit :


Bin vas-y, dis-y comment faire et pis c'est tout. J'le fais pas passke ça me saoûle de parser de la regexp mais si t'as envie te gêne pas :o


 
Aggressif, agressif (y'a un ou deux G?? Un affreux doute m'assaille)  
Zen, messieurs, zen! :)  
Il fait beau, la lunditude de la journée est assez pénible en soi pour ne pas en rajouter! :D

n°735989
nraynaud
lol
Posté le 24-05-2004 à 13:30:36  profilanswer
 

Taiche a écrit :

Bin vas-y, dis-y comment faire et pis c'est tout. J'le fais pas passke ça me saoûle de parser de la regexp mais si t'as envie te gêne pas :o

nan, mais j'ai au moins un mail dans ma boite qui a :

Citation :

Return-Path: <>


 
et je suis pas sûr que les <> sont obligatoire, mais j'ai la flemme de lire la RFC pour quelqu'un qui a déjà du mal à lire les javadocs.


---------------
trainoo.com, c'est fini
n°735992
gfive
Posté le 24-05-2004 à 13:33:53  profilanswer
 

Surtout qu'il y a de merveilleuses API Javamail qui doivent faire tout le boulot.

n°735994
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 24-05-2004 à 13:37:17  profilanswer
 

gfive a écrit :

Aggressif, agressif (y'a un ou deux G?? Un affreux doute m'assaille)  
Zen, messieurs, zen! :)  
Il fait beau, la lunditude de la journée est assez pénible en soi pour ne pas en rajouter! :D


T'inquiète, c'est nraynaud, il en a vu d'autres depuis hier :D Pis j'ai mis un :o de bon aloi.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°735997
nraynaud
lol
Posté le 24-05-2004 à 13:39:53  profilanswer
 

surtout que je lui ai pas dit comment faire, vu qu'une regex c'est pas adapté à ce cas.
 
En réalité, je suis toujours à la recherche d'un cas où les regexes sont adaptées.


---------------
trainoo.com, c'est fini
n°736001
gfive
Posté le 24-05-2004 à 13:44:17  profilanswer
 

nraynaud : j'en ai un! :D Vérification du format des références de docs peugeot.
Sauf que c'est tellement à la con, que personne a encore réussi à écrire un pattern qui couvre tous les cas particuliers!

n°736006
nraynaud
lol
Posté le 24-05-2004 à 13:46:21  profilanswer
 

gfive a écrit :

nraynaud : j'en ai un! :D Vérification du format des références de docs peugeot.
Sauf que c'est tellement à la con, que personne a encore réussi à écrire un pattern qui couvre tous les cas particuliers!

donc il faut utiliser un lexer si c'est trop bordélique. C'est bien plus efficace


---------------
trainoo.com, c'est fini
n°736008
gfive
Posté le 24-05-2004 à 13:48:06  profilanswer
 

bah, en fait, on a décidé qu'ils allaient se démerder avec leur nomenclature débile..... Flemme inside! :D

n°736046
benou
Posté le 24-05-2004 à 14:12:42  profilanswer
 

dans mon cas je m'en sers pour permettre pour de la config. ex : mapping d'url


---------------
ma vie, mon oeuvre - HomePlayer
n°736084
nraynaud
lol
Posté le 24-05-2004 à 14:23:38  profilanswer
 

benou a écrit :

dans mon cas je m'en sers pour permettre pour de la config. ex : mapping d'url

ah oué ?
 
depuis que j'ai vu une alerte sur bugtraq à propos de rewrite, je suis parano par rapport à cette idée.


---------------
trainoo.com, c'est fini
n°736088
benou
Posté le 24-05-2004 à 14:24:22  profilanswer
 

nraynaud a écrit :

depuis que j'ai vu une alerte sur bugtraq à propos de rewrite, je suis parano par rapport à cette idée.


hein ?


---------------
ma vie, mon oeuvre - HomePlayer
n°736098
nraynaud
lol
Posté le 24-05-2004 à 14:27:49  profilanswer
 

mod_rewrite
 
le machin d'apache pour changer les URLs, je me trompe de nom peut-être.


---------------
trainoo.com, c'est fini
n°736108
benou
Posté le 24-05-2004 à 14:30:21  profilanswer
 

nraynaud a écrit :

mod_rewrite
le machin d'apache pour changer les URLs, je me trompe de nom peut-être.


je connais pas bien la config apache ...
dans mon cas ca sert par exemple à associer des produits payants à certaines url (genre un répértoire, un fichier fichier html, etc ...). Ca a l'avantage d'être très flexible ...
Donc c'est juste un test de matching ... rien de bien méchant


Message édité par benou le 24-05-2004 à 14:30:56

---------------
ma vie, mon oeuvre - HomePlayer
n°736116
nraynaud
lol
Posté le 24-05-2004 à 14:33:12  profilanswer
 

benou a écrit :

je connais pas bien la config apache ...
dans mon cas ca sert par exemple à associer des produits payants à certaines url (genre un répértoire, un fichier fichier html, etc ...). Ca a l'avantage d'être très flexible ...
Donc c'est juste un test de matching ... rien de bien méchant

oué c'est pareil, il expliquaient que pour les répertoires, il faut pas oublier que le / final est optionnel et en tenir compte dans la regex car ils le feront pas pour toi et si tu planques un répertoire avec ça, il y a un risque d'accès quand même.
 
 
C'est pourquoi je suis *pour* les choses sémantiques, c'est plus clair et moins risqué.


---------------
trainoo.com, c'est fini
n°742290
TBone
Pouet.
Posté le 27-05-2004 à 21:25:15  profilanswer
 

nraynaud a écrit :

En réalité, je suis toujours à la recherche d'un cas où les regexes sont adaptées.


j'ai bossé sur un moteur d'enrichissement (création de fils) et de correction (modifs de text()) de contenu XML basé sur les regexp. (pour de la publication de documents)
 
ça marchait plutôt bien sans être trop ramant.  
 
le user créait une liste d'actions à opérer sur le fichier XML  
exemple: dans "//p[type='1']" : corriger "[xX][mM][lL]" par "XML" histoire d'unifier et remplacer "java.sun.com" par "<link url='http://java.sun.com'>java.sun.com</link>"
 
on lancait le moteur, je créais mon ensemble de règles (Pattern compilés), les patterns foireux étaient mis dehors, et je parsais le document pour appliquer les actions...
 
c'était bien cool :)
 
je m'étais même amusé à écrire des méthodes de transformations genre toUpperCase(), ...  
 
c'est-y-pas un bel exemple d'application des reg exp ? :o


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°742297
nraynaud
lol
Posté le 27-05-2004 à 21:34:29  profilanswer
 

TBone a écrit :


 
c'est-y-pas un bel exemple d'application des reg exp ? :o

non, par contre, un bel exemple d'utilisation d'un outil genre JLex


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [java] Regex : je ne m'en sors pas :(

 

Sujets relatifs
[Java] Problème pour convertir un string en entier [resolu]Upload de photos en java
[java] ouverture d'une boite de dialogue[java] généalogie
[Java] Récupérer un fichier sur un site et l'enregistrer localement ?[Java] text qu'on veut pas voir : remplacer la saisie par astérisques?
[JAVA] Comment laisser tourner une méthode en arrière plan ?[JAVA] problème de lecture de fichier
[java] Probleme incomprehensible avec JDOM (long mais help please:'()[Java] Pb avec l'API 1.4 de Logging - pb de Handler par défaut
Plus de sujets relatifs à : [java] Regex : je ne m'en sors pas :(


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR