IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

[regex]Passage d'une regexp Ruby vers Java


Sujet :

Collection et Stream Java

  1. #1
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 885
    Par défaut [regex]Passage d'une regexp Ruby vers Java
    Bonjour

    Pour tester mes regexps, j'ai toujours un petit code Ruby sous la main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    a = "epp IL1a 24 R"
    b = "epp IL1a 24 "
    if a=~/(\s*R\s*)$/
            puts "a OK"+$1.to_s
    end
    if b=~/(\s*R\s*)$/
            puts "b OK"+$1.to_s
    end
    Ma regexp est donc: /(\s*R\s*)$/
    Or, quand je veux appliquer cette regexp en Java, le cas a ne passe pas du tout. Voici comment j'ai écrit ma regexp pour Java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    java.util.regex.Pattern p = java.util.regex.Pattern.compile("(\\s*R\\s*)$");
    java.util.regex.Matcher m = p.matcher(column);
    Comment expliquer que mon cas a ne passe pas ?
    Et surtout, comment contourner le problème ?

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Que fait ce code Ruby exactement ? Et quel est ton code java correspondant (la tu ne fais que créer le matcher mais tu ne l'utilise pas) ?

    a++

  3. #3
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 885
    Par défaut
    Salut adi

    Le code Ruby est au complet ci-dessus. Il se limite à m'écrire si la regexp est trouvé pour les variables a et b ainsi que d'écrire le group trouvé.
    Le code Java se base dessus avec la regexp décrite. L'idée est de pouvoir récupérer le groupe décrit pour faire du traitement de chaînes de caractères.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Dans ce cas il manque la boucle de recherche du pattern :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	java.util.regex.Pattern p = java.util.regex.Pattern.compile("(\\s*R\\s*)$");
    	java.util.regex.Matcher m = p.matcher(column);
     
    	while (m.find()) { // On recherche l'élément suivant
    		System.out.println(m.group()); // Et on l'affiche
    	}
    Ici le while pourrait être remplacé par un if comme il ne peut y avoir qu'un seul résultat

    a++

  5. #5
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 885
    Par défaut
    Ok, je vais essayer. Merci adi.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  6. #6
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Par défaut
    Je confirme (grilled par adiGuba en fait)

    Si tu ne fais pas de find il ne peut pas trouver ton groupe, je viens de tester en faisant 1find (dans ton cas ya qu'un groupe a trouver donc j'ai pas fait de while )

    Et le pattern match bien "a" et plante pour "b"

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  7. #7
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 885
    Par défaut
    Nice les gars ! Ca marche !
    Merci à vous !

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de passage d'une page XHTML vers page JSP
    Par MG-openssl dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 27/04/2011, 19h43
  2. Passage d'une page html vers une page jspx
    Par walidinfo dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 25/11/2010, 17h36
  3. passage d'une macro excel vers delphi
    Par zanoubya dans le forum Débuter
    Réponses: 11
    Dernier message: 18/06/2009, 17h55
  4. [RegExp] Adapter une regexp Perl vers du Java
    Par GLDavid dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 22/12/2005, 12h40
  5. [Regex]Match d'une regexp avec une chaîne avec caractères spéciaux
    Par gdawirs dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 25/11/2005, 12h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo